Firefox 扩展如何读取 DOM/window 对象?即逆向:内容脚本访问网页js
我想在扩展中分配一个变量 - 使用 unsafeWindow 对象。但它不起作用。unsafeWindow 在 contentScript 之外是未定义的:
我尝试了许多其他方法,但我想避免需要任何丑陋的黑客..
例如https://addons.mozilla.org/en-US/developers/docs/sdk/1.6/dev-guide/guides/content-scripts/access.html说 unsafeWindow 是一个很好的代理:它看到实际的窗口对象(即使它被 jQuery 等库修改)。但是当我尝试访问 unsafeWindow 时,例如: var widgets = require("sdk/widget"); var tabs = require("sdk/tabs");
var widget = widgets.Widget({
id: "mozilla-link",
label: "Mozilla website",
contentURL: "http://www.mozilla.org/favicon.ico",
onClick: function() {
tabs.activeTab.attach({
// native implementation of window.confirm will be used
contentScript: "console.log(window.navigator.userAgent);"
});
dump(unsafeWindow.navigator.userAgent);
}
dump(unsafeWindow);
});
Console.log 工作并在 sdk 控制台中触发“信息:”。但转储没有,实际上那里存在参考错误。我真的需要从扩展访问窗口对象。那么是否存在 unsafeWindow 呢?如何访问窗口对象?我不会调用任何函数,所以它是安全的。