如何在Firefox插件上编辑`window`上的属性?

时间:2011-05-01 01:34:29

标签: javascript firefox firefox-addon

我想创建一个修改window上的一个值的插件。

我们以一个简单的窗口为例:

<html>
    <head>
        <title></title>
        <script>
            window.hello = 1;
        </script>
    </head>

    <body>

    </body>
</html>

使用

gBrowser.addEventListener("DOMContentLoaded",
    function (e)
    {
        e.originalTarget.defaultView.hello = 2;
    }, false);

不会修改window.hello的值。含义e.originalTarget.defaultView != window

如何访问纯window

1 个答案:

答案 0 :(得分:2)

e.originalTarget指的是该页面的文档元素。要访问页面的窗口元素,请使用e.target.defaultView。但是,为了保持Mozilla安全协议的范围,您必须通过其wrappedJSObject属性访问窗口对象。总的来说,你要改变变量,如:

e.target.defaultView.wrappedJSObject.hello = 2