2012-07-09 81 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