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(",") + "}";

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值