我目前正在进行Firefox扩展,但是当我浏览特定网址时,我无法运行该功能。
在我的chrome.manifest中,实际文件系统中的overlay chrome://browser/content/browser.xul chrome://boxcutter/content/overlay.xul
和content/
位于chrome/content/
(我使用了扩展生成器)。
所以我假设我可以在overlay.xul
中使用脚本标记来引用包含我的pageMod函数的main.js
文件。
我的pageMod功能是(我可能在这里塞了一些东西,以及为什么这不起作用):
(function() {
var pageMod;
pageMod = require('page-mod');
new pageMod.PageMod({
include: ["http://battlelog.battlefield.com/bf3/*"],
contentScriptFile: data.url('boxcutter.js')
});
}).call(this);
当用户访问Battlelog时,这应该调用我的boxcutter.js
文件,但似乎没有任何事情发生。有一次,我认为我在boxcutter.js
中使用的JS不能正常工作,但是在添加alert('test');
并刷新页面后,没有任何反应。
这让我相信我的overlay.xul
文件出了问题,但是我可以通过Battlelog网站上的Firebug调用jQuery函数(我知道事实上没有jQuery库,因为我查了一下。)
因此,我认为我的pageMod脚本(上面)出现问题,但是我在编写pageMod脚本时没有正常工作或者我做错了。
答案 0 :(得分:2)
page-mod
是Firefox Add-on SDK提供的模块 - 这是用于构建扩展的框架。如果您不使用该框架(并且鉴于您正在讨论chrome清单和覆盖,您显然没有),那么您显然无法使用其功能。如果您希望使用经典扩展程序,那么您可能希望在叠加层中add a handler for the DOMContentLoaded
event,检查网页是否符合您的条件,然后对其执行某些操作。