我正在开发一个简单的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!
答案 0 :(得分:0)
Darn it,javascript中有一个拼写错误,“function {}”后面缺少括号。
var nodeVis = {
showNode: function (){
alert('Argh!');
}
};
。无论如何。现在我们有一个很好的模板来摆弄。