0

我已經實現了示例Mozilla Firefox擴展在工具欄上顯示Firefox圖標(動作按鈕),它將打開「http://www.mozilla.org/」。 它在jpm運行中工作正常,然後我創建了使用jpm xpi的包並創建了xpi文件。然後我已經安裝在我的Firefox瀏覽器,併成功安裝,但沒有工作。 它不能在工具欄上添加Firefox圖標(動作按鈕)(控制檯中沒有錯誤)。Firefox擴展沒有顯示圖標

以下是代碼。

index.js

var buttons = require('sdk/ui/button/action'); 
 
var tabs = require("sdk/tabs"); 
 

 
var button = buttons.ActionButton({ 
 
    id: "mozilla-link", 
 
    label: "Visit Mozilla", 
 
    icon: { 
 
    "16": "./icon-16.png", 
 
    "32": "./icon-32.png", 
 
    "64": "./icon-64.png" 
 
    }, 
 
    onClick: handleClick 
 
}); 
 

 
function handleClick(state) { 
 
    tabs.open("http://www.mozilla.org/"); 
 
}

的package.json

{ 
 
    "title": "Sample", 
 
    "name": "sample", 
 
    "version": "0.0.1", 
 
    "description": "Sample AddOn", 
 
    "main": "index.js", 
 
    "author": "Sample", 
 
    "engines": { 
 
    "firefox": ">=30.0a1", 
 
    "fennec": ">=30.0a1" 
 
    }, 
 
    "license": "MIT" 
 
}

我已經實施使用 - https://developer.mozilla.org/en-US/Add-ons/SDK/Tutorials/Getting_Started_%28jpm%29

請幫助。

感謝

+0

是否使用了設置爲永不雷默輪廓mber歷史記錄(選項 - >隱私 - >歷史記錄),或以[隱私瀏覽模式](https://www.mozilla.org/en-US/firefox/private-browsing/)進行。如果是這樣,請參閱[Firefox附加組件使用「jpm run」,但不使用「jpm xpi」](http://stackoverflow.com/a/38793196/3773011)生成的隨附.xpi文件。 – Makyen

回答

2

爲了使圖標visable,你必須創建你的擴展內data目錄,並把你的新圖標。

+0

感謝您的回覆,我認爲JPM不需要ID。但無論如何,我已經與Id一起嘗試過,但仍然存在相同的問題。我不確定這個問題是否與JPM有關,因爲我沒有使用CFX。請指教。 –

+0

你說得對,'jpm'不需要'id'。我用jpm運行你的代碼,再次沒有錯誤,擴展對我來說工作正常。你確定你在嘗試'jpm xpi'時沒有遇到任何錯誤嗎? –

+1

是的,jpm xpi沒有錯誤。以及jpm運行也工作正常,但是當我在我的Firefox中安裝xpi文件時,沒有任何事情發生意味着它不顯示圖標。你能否給我發送你生成的xpi文件? - [email protected] –

0

您錯過了本課中的一個項目... 您需要在擴展根目錄中創建「data」目錄,並且必須將所有內容放入此文件夾中。 在我的例子我用這樣的:

var button = this.buttons.ActionButton({ 
      id: "show-panel", 
      label: "Show Panel", 
      icon: { 
       "16": "./icon/x16.png", 
       "32": "./icon/x32.png", 
       "64": "./icon/x64.png" 
      }, 
      onClick: function(state) { 
       // ... 
      } 
     }); 

和我的結構是這樣的: MyExtensionName /數據/圖標/ [巴紐, .ICO]

但你也可以使用內部鏈接

資源:擴展的// EXTENSIONNAME/...

icon: { 
    "16": "resource://extensionname/data/icon/x16.png", 
    "32": "resource://extensionname/data/icon/x32.png", 
    "64": "resource://extensionname/data/icon/x64.png" 
}