0

在我目前正在使用插件构建器开发的 Firefox 扩展中,我在新选项卡中打开一个页面,我想调用此页面上脚本中定义的 JS 函数。为此,我使用以下代码:

var toOpenTab = require("tabs");
toOpenTab.on('open', function(tab){
    toOpenTab.on('ready', function(tab){
        tab.attach({
            contentScript:
                "function showFile(){PageSpecificFunction()};window.onload=showFile();"
        });

    });

});

我实现了 window.onload 事件,以确保在页面中加载包含 PageSpecificFunction() 定义的脚本,即使我认为没有必要(因为我使用了 toOpenTab.onReady 事件)。

问题是:PageSpecificFunction() is not defined。我知道该函数已正确定义并且可以正常工作,因为我可以在 firebug 控制台中调用它并且它可以完美运行。

打开我的页面后,有没有办法让我的扩展程序调用这个函数?

4

1 回答 1

1

您需要使用全局unsafeWindow对象:

unsafeWindow.PageSpecificFunction();

然而,这是一个安全风险

于 2012-08-31T13:28:15.860 回答