【发布时间】:2012-09-05 22:03:10
【问题描述】:
我想制作一个 Chrome 扩展程序,在 window 中提供一个新对象。在加载了扩展程序的浏览器中查看网页时,我希望 window.mything 可以通过 Javascript 访问。 window.mything 对象将具有一些我将在扩展中定义的函数,当在启用扩展的浏览器中查看页面时,这些函数应该可以从 console.log 或任何 Javascript 文件中调用。
我能够通过使用Content Script 成功地将 Javascript 文件注入页面:
var s = document.createElement("script");
s.src = chrome.extension.getURL("mything.js");
document.getElementsByTagName("head")[0].appendChild(s);
mything.js 看起来像这样:
window.mything = {thing: true};
console.log(window);
每当页面加载时,我都会看到整个 window 对象,因为我希望它在控制台中。但是,我无法从控制台与 window.mything 对象进行交互。似乎注入的脚本没有真正修改全局 window 对象。
如何从 Chrome 扩展程序修改全局 window 对象?
【问题讨论】:
-
那是不可能的。您是否正在查看正确的控制台,脚本是否真正执行(检查文档并查找脚本标签/检查语法错误)?该脚本当然是在页面上下文中运行的,因此,
mything必须存在。
标签: javascript google-chrome-extension