0

我目前正在制作一个 Firefox 扩展,但是当我浏览到特定的 url 时,我无法运行该功能。

在我的 chrome.manifest中overlay chrome://browser/content/browser.xul chrome://boxcutter/content/overlay.xulcontent/实际文件系统位于chrome/content/(我使用了扩展生成器)。

所以我假设我可以在我的文件中使用脚本标签overlay.xul来引用main.js包含我的 pageMod 函数的文件。

我的 pageMod 函数是(我可能在这里塞了一些东西,这就是为什么这不起作用):

(function() {
    var pageMod;
    pageMod = require('page-mod');

    new pageMod.PageMod({
        include: ["http://battlelog.battlefield.com/bf3/*"],
        contentScriptFile: data.url('boxcutter.js')
    });
}).call(this);

boxcutter.js当用户进入 Battlelog 时,这应该调用我的文件,但似乎没有任何反应。在某一时刻,我认为是我的 JSboxcutter.js无法正常工作,但是在添加alert('test');和刷新页面后,什么也没发生。

这让我相信我的文件做错了,overlay.xul但是我能够通过 Battlelog 网站上的 Firebug 调用 jQuery 函数(我知道事实上没有 jQuery 库,因为我检查过)。

所以我认为我的 pageMod 脚本(上图)有问题,它不能正常工作,或者我在编写 pageMod 脚本时做错了什么。

4

1 回答 1

2

page-modFirefox Add-on SDK提供的一个模块- 这是一个构建扩展的框架。如果您不使用该框架(并且鉴于您正在谈论 chrome manifest 和覆盖您显然不使用),那么您显然无法使用它的功能。如果您想继续使用经典扩展,那么您可能希望在叠加层中添加事件处理程序DOMContentLoaded,检查页面是否符合您的条件,然后对其进行处理。

于 2012-09-13T14:52:46.157 回答