访问Chrome unsafeWindow

时间:2014-03-09 19:15:42

标签: javascript google-chrome google-chrome-extension

是的,之前您已经看过这个主题。但是,Chrome已关闭了一个最常见的端口,以使用unsafeWindow与目录一起使用脚本。

var unsafeWindow;
(function() {
    var div = document.createElement("div");
    div.setAttribute("onclick", "return window");
    unsafeWindow = div.onclick();
})();

现在div.onclick返回 null

我的问题是:目前还有另一种通过目录脚本访问unsafeWindow的方法吗?例如,我想访问页面本身使用的jQuery。

unsafeWindow.jQuery().jquery; // <- 1.9.0

1 个答案:

答案 0 :(得分:1)

好吧,我有一份决定草案给你。也许这就是你需要的?

Injected.js 在原始窗口范围内工作, contentscript.js 在其隔离的窗口范围内工作。问题是你没有unsafeWindow变量,但我认为你可以使用这个变量将你的代码包装在一些函数中。

*的的manifest.json

"web_accessible_resources": ["injected.js"],
"content_scripts": [{
    "matches": ["*://*/*"],
    "js": ["js/content.js"]
}],
...

<强> contentscript.js

var internalScript = document.createElement("script");
internalScript.src = chrome.runtime.getURL("injected.js");
document.body.appendChild(internalScript);

<强> injected.js

console.log(window);
console.log(window.$);