开发第一个Firefox扩展,如何包含js?

时间:2014-01-30 07:19:05

标签: firefox firefox-addon

我正在开发一个简单的Firefox(v 26)扩展,它覆盖了“BrowserToolbarPalette”,只需在主工具栏中添加一个Button。

当我使用内联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”未定义,但不在当前布局/配置中。

任何帮助appriciated!

1 个答案:

答案 0 :(得分:0)

Darn it,javascript中有一个拼写错误,“function {}”后面缺少括号。

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

。无论如何。现在我们有一个很好的模板来摆弄。