开发第一个Firefox扩展名,如何包括JS



我正在开发一个简单的firefox(v 26)扩展名,该扩展名覆盖了" browsertoolbarpalette",并且只需在主工具栏中添加一个按钮即可。

当我使用内联JavaScript时," OnCommand ="按钮的侦听器正在工作:

<overlay id="xulschoolhello-browser-overlay"
  xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">

  <toolbarpalette id="BrowserToolbarPalette">
    <toolbarbutton id="NodeVisButton"
               tooltiptext="Visualize Server Nodes"
               label="NodeVis" 
               oncommand="alert('Foobar');" />
  </toolbarpalette>
</overlay>

...并且警报正在显示。

如果我包括这样的JS文件:

<overlay id="xulschoolhello-browser-overlay"
  xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
  <script type="application/x-javascript" src="chrome://nodevisualizer/content/nodevis.js" />
  <toolbarpalette id="BrowserToolbarPalette">
    <toolbarbutton id="NodeVisButton"
               tooltiptext="Visualize Server Nodes"
               label="NodeVis" 
               oncommand="nodeVis.showNode()" />
  </toolbarpalette>
</overlay>

... JavaScript不起作用。

JavaScript文件的内容:

var nodeVis = {
    showNode: function {
            alert('Argh!');
    }
};

我的chrome.manifest:

content     nodevisualizer    chrome/content/
overlay chrome://browser/content/browser.xul chrome://nodevisualizer/content/plugin.xul

..和我的目录布局:

node_visualizer
  - chrome
      -- content
         --- plugin.xul
         --- nodevis.js
  - chrome.manifest
  - install.rdf

在某个时候,我设法获得了JavaScript控制台至少显示" Nodevis"未定义的错误,但在当前布局/config。

任何帮助!

darn,javascript中有一个错字,背后缺少括号" function {}"。

var nodeVis = {
    showNode: function (){
            alert('Argh!');
    }
};

。无论如何。现在,我们有一个不错的模板可以解决。

最新更新