javascript - 访问 Chrome unsafeWindow

标签 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

最佳答案

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

Injected.js 在原始窗口范围内工作,contentscript.js 在其独立窗口范围内工作。问题是您没有 unsafeWindow 变量,但我认为您可以使用此变量将代码包装在某个函数中。

*ma​​nifest.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);

注入(inject).js

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

关于javascript - 访问 Chrome unsafeWindow,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22286834/

相关文章:

javascript - 为什么我似乎需要 Promise 和回调来将 JSON 数据公开给全局变量?

元素类中的Javascript变量值?

google-chrome - Chrome在docker网络内部无法访问

javascript - Chrome 自动登录 - 弃用将 'PasswordCredential' 对象传递到 'fetch - 如何解决?

javascript - 'chrome.extension.onRequest.addListener(function( )' don` t 运行其他函数

javascript - 如何找出此 Chrome 扩展程序存储数据的位置?

javascript - 如何在函数上创建数组显示?

javascript - 打印完 div 内容后停止打印

css - 如何在 chrome devtools 中检查 webkit 元素样式?

javascript - 将 Angular.js 用于 Chrome 扩展