`
shuaigg.babysky
  • 浏览: 571025 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

Chrome脚本访问window对象

 
阅读更多

var isChrome = window.chrome;

 

function safeInvoke(callback) {

/// <summary>沙箱模式下的回调</summary>

 

//因为Chrome不支持require引入脚本包的功能,为避免需要将整个jQuery加载进来,这里使用非安全模式进行执行

if (isChrome) unsafeInvoke(callback);

else callback();

}

 

 

function unsafeInvoke(callback) {

/// <summary>非沙箱模式下的回调</summary>

var cb = document.createElement("script");

cb.type = "text/javascript";

cb.textContent = buildCallback(callback);

document.head.appendChild(cb);

}

 

function buildCallback(callback) {

var content = "";

content += "window.__cb=" + buildObjectJavascriptCode(callback) + ";\r\n\

window.__cb();\r\n\

";

return content;

}

 

function buildObjectJavascriptCode(object) {

/// <summary>将指定的Javascript对象编译为脚本</summary>

if (!object) return null;

 

var t = typeof (object);

if (t == "string") {

return "\"" + object.replace(/(\r|\n|\\)/gi, function (a, b) {

switch (b) {

case "\r":

return "\\r";

case "\n":

return "\\n";

case "\\":

return "\\\\";

}

}) + "\"";

}

if (t != "object") return object + "";

 

var code = [];

for (var i in object) {

var obj = object[i];

var objType = typeof (obj);

 

if ((objType == "object" || objType == "string") && obj) {

code.push(i + ":" + buildObjectJavascriptCode(obj));

} else {

code.push(i + ":" + obj);

}

}

 

return "{" + code.join(",") + "}";

}

分享到:
评论

相关推荐

    Chrome_autoit操作chrome_autoit3chrome_autoit_autoitchrome_chrome_源

    需要注意的是,由于安全原因,Google Chrome通常会阻止非用户交互的自动脚本操作,因此在使用AutoIt时可能需要调整Chrome的安全设置或者利用特定的扩展程序配合使用。 综上所述,"Chrome_autoit操作chrome_autoit3...

    chrome插件demo 实现各个类型的js之间的通信

    它可以通过`window.postMessage`与背景脚本通信。 4. 选项页面脚本:用于设置插件的参数。与背景脚本的通信方式与弹出窗口类似,通常使用`chrome.storage` API来共享数据。 在V3版本的Chrome插件中,`message ...

    chrome-todoapp:带有 chrome 本地存储和通知的 Chrome 待办事项扩展应用程序

    2. 使用方法:通过window.localStorage对象的setItem()和getItem()方法,可以方便地在客户端存储和检索数据。例如,将待办事项保存至localStorage时,可以使用`localStorage.setItem('todo', JSON.stringify...

    自动填写表单的chrome插件

    标题中的“自动填写表单的chrome插件”指的是一个用于谷歌浏览器(Chrome)的扩展程序,它的核心功能是在用户访问特定类型的网页时自动填充表单数据。这种插件可以极大地提高用户在在线填写表单时的效率,尤其适用于...

    fix-chrome-window-group-gnome-shell:用于在gnome-shell上修复Chrome窗口组的Shell脚本

    shell上的Chrome窗口组的Shell脚本安装运行此单行代码即可自动修复:$ wget -q https://raw.githubusercontent.com/erichnascimento/fix-chrome-window-group-gnome-shell/master/fix-...

    chrome window浏览器

    Chrome Window浏览器,通常指的是Google Chrome在Windows操作系统上的版本。这款浏览器是全球最受欢迎的网页浏览工具之一,以其快速、稳定和安全著称。Chrome基于开源的Webkit(Blink)渲染引擎,提供高效的网页加载...

    iE、chrome等4个selenium window驱动包

    在你提到的"iE、chrome等4个selenium window驱动包"中,包含了Selenium与这些浏览器交互所需的关键组件。 首先,我们来详细了解一下这些驱动包: 1. **chromedriver**: 这是Selenium用于与Google Chrome浏览器通信...

    解决chrome对jQuery的支持问题

    1. **使用`window.onload`**:`window.onload`事件会在整个页面包括图片、脚本等所有资源加载完毕后触发。但是,相比于`$(document).ready()`,它的执行时间可能会更晚,因为需要等待所有资源加载。 2. **使用...

    chrome自动填写表单插件

    2. **DOM操作**:内容脚本可以与网页的DOM(文档对象模型)交互,用于查找表单元素并填充数据。熟悉`document.querySelector()`和`document.querySelectorAll()`等方法,以及`element.value = 'data'`这样的属性设置...

    chrome超链接调用ie打开

    chrome点击链接启动ie浏览器方法,包括浏览器启动即自动全屏脚本

    解决[removed]window.close()在chrome,Firefox下失效的问题

    这阻止了恶意的脚本终止用户的浏览器。  在IE中,window.close()能生效,在生效的时候,会弹出提示框,询问你是否关闭该窗口,如图:    点击“是”,可以直接关闭该窗口。是这段代码在chrome和Firefo

    Chrome插件开发--后台监控网页并自动刷新,点击页面元素

    3. **内容脚本(Content Script)**:这些脚本会注入到用户访问的网页中,可以直接操作DOM,实现对网页元素的控制,如自动刷新和点击页面元素。 4. **浏览器动作(Browser Action)和页面动作(Page Action)**:...

    如何让chrome新建标签自动打开你想要的网址

    在使用谷歌浏览器(Chrome)的过程中,我们经常需要频繁访问某些特定的网站,如果每次打开新的标签页都要手动输入或寻找这些网址,会显得较为繁琐。实际上,Chrome 提供了一种方式,可以设置新标签页自动打开用户...

    selenium对应chrome浏览器驱动(Chrome70版本-最新Chrome版本,mac、windows、liunx).zip

    本资源包提供了适用于Chrome70版本至最新Chrome版本的浏览器驱动,同时也支持macOS、Windows和Linux操作系统。 首先,我们要理解Selenium WebDriver的工作原理。WebDriver是一个接口,让开发者可以使用多种编程语言...

    chrome extension例子——选中文本笔记

    3. **跨域通信**:可能用到`chrome.runtime.sendMessage`和`chrome.runtime.onMessage`来在内容脚本和背景脚本之间传递信息。 4. **前端UI**:构建用户友好的弹出窗口界面,可能使用了HTML5、CSS3和JavaScript库如...

    vbs脚本打开web窗口隐藏地址栏和工具栏

    对于其他浏览器,如Chrome或Firefox,可能需要使用不同的方法或者使用它们的API(如Chrome的`chrome.exe --kiosk`或Firefox的`firefox.exe -private-window`)。 由于提供的压缩包文件名为`vbshtml.vbs`,我们可以...

    chrome扩展(V3版)简单实例

    - **定义**:运行在页面上下文中的脚本,可以直接访问页面DOM。 - **用途**:修改页面内容、监听事件等。 - **注入方式**: - 在`manifest.json`中指定注入的页面。 - 动态注入(通过`chrome.tabs.executeScript`...

    Windows Server 2008R2下可运行的Chrome与ChromeDriver

    在配置完成后,可以使用Python、Java等编程语言的Selenium库编写自动化脚本,通过指定的ChromeDriver路径启动Chrome浏览器并执行测试。例如,使用Python的代码片段如下: ```python from selenium import webdriver...

    定义全局对象文章代码

    2. **全局作用域**:全局对象存在于整个脚本的生命周期中,因此它的属性可以在脚本的任何地方被访问。全局变量的生命周期始于脚本的开始,结束于脚本的终止,这意味着即使在函数内部定义的全局变量也能在函数外部...

Global site tag (gtag.js) - Google Analytics