我已经加载了扩展程序并且能够在底部显示状态。我试图将以下代码添加到chrome.manifest文件中:
chrome.manifest:
content sample chrome/content/
overlay chrome://browser/content/browser.xul chrome://sample/content/sample.xul
然后在sample.xul中,我有以下内容:
sample.xul:
<?xml version="1.0"?>
<overlay id="sample"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<statusbar id="status-bar" hidden="false">
<statusbarpanel id="my-panel" label="Hello, World v2" />
</statusbar>
<menubar id="main-menubar">
<menu label="Jeff" insertbefore="tools-menu">
<menupopup>
<menuitem label="About"/>
</menupopup>
</menu>
</menubar>
<script src="onloadoverlay.js"/>
</overlay>
我添加了菜单栏和状态栏,以确保叠加层正常工作(到目前为止)。所以从理论上讲,下面的代码应该从&#34; onloadoverlay.js&#34;当浏览器启动时,因此在页面加载时应继续加载:
onloadoverlay.js:
var myExtension = {
init: function() {
// The event can be DOMContentLoaded, pageshow, pagehide, load or unload.
if(gBrowser) gBrowser.addEventListener("DOMContentLoaded", this.onPageLoad, false);
},
onPageLoad: function(aEvent) {
var doc = aEvent.originalTarget; // doc is document that triggered the event
var win = doc.defaultView; // win is the window for the doc
// test desired conditions and do something
// if (doc.nodeName != "#document") return; // only documents
// if (win != win.top) return; //only top window.
// if (win.frameElement) return; // skip iframes/frames
alert("page is loaded \n" +doc.location.href);
}
}
window.addEventListener("load", function load(event){
window.removeEventListener("load", load, false); //remove listener, no longer needed
myExtension.init();
},false);
如果我完全错误或者我遗漏了一些简单的话,请告诉我。我已经通过谷歌和几个扩展创建演练和其他信息达到了这一点。到目前为止,我希望代码能够在页面加载时弹出一个窗口。
非常感谢帮助,
-Jeff
答案 0 :(得分:1)
将脚本代码的src
属性更改为chrome://sample/content/onloadoverlay.js