2012-07-09 82 views
2

我用下面的附加SDK创建了一个简单的Firefox附加组件,但它只能运行一次。我正在使用附加SDK的1.8版本。Firefox扩展内容脚本调用/生命周期

$ mkdir test_ext 
$ cd test_ext 
$ cfx init 
$ cat >package.json 
    { 
    "name": "no2", 
    "license": "MPL 2.0", 
    "author": "", 
    "version": "0.1", 
    "fullName": "test_ext", 
    "id": "my-id", 
    "description": "a basic add-on" 
    } 
$ cat >lib/main.js 
    <!-- language: lang-js --> 
    require("page-mod").PageMod({ 
     include: ["*.org"], 
     contentScript: 'document.body.innerHTML = ' + 
     '"<h1>this page has been eaten</h1>";' 
    }); 
$ cfx run 

现在在浏览器中,如果我去w3.org它的作品。如果我重新加载或转到不同的.org域名(如wwf.org),则不会发生任何事情。我怎样才能测试和应用任何新的页面?

+0

我在main.js中单独测试了你的PageMod代码,它可以在任何.org站点(包括w3和wwf)中运行。在构建器网站上使用SDK 1.8。 – 2012-07-13 00:20:42

+0

它只工作一次,我必须杀死与'cfx运行'产生的浏览器并再次运行'cfx运行',使其再次运行, – 2012-07-17 20:00:45

+0

似乎工作正常,附加SDK 1.12,Firefox 14.0.1在Xubuntu 12.10上。 – 2012-12-14 04:17:03

回答

2

我会写这样的方式是:

require("page-mod").PageMod({ 
    include: ["*.co.uk"], 
    contentScript: 'document.body.innerHTML = ' + 
      '"<h1>this page has been eaten</h1>";' 
}); 

我觉得你的代码的问题是使用“新”的关键字吗?

+0

没有解决它,更详细地描述了情况。 – 2012-07-10 15:20:47