我正在开发一个简单的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!');
}
};
。无论如何。现在,我们有一个不错的模板可以解决。