Firefox扩展:如何从加载覆盖中运行脚本
Firefox extension: how to get a script to run from a load overlay
我已经加载了扩展,并且能够在底部显示状态。我尝试将以下代码添加到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>
我添加了菜单栏和状态栏,以确保覆盖可以正常工作(到目前为止)。因此,理论上,以下代码应该在浏览器启动时从"onloadoverlay.js"加载,因此应该在页面加载时继续加载:
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
将脚本标记的src
属性更改为chrome://sample/content/onloadoverlay.js
相关文章:
- 在循环中分配json值时,值被覆盖
- 如何使用phaser使html5游戏在移动设备浏览器上运行
- 使用压缩的JavaScript文件(不是运行时压缩)
- 谷歌地图固定位置覆盖
- Javascript运行php文件,然后下载文件
- chrome扩展:尽管运行了at:documentidle,js脚本还是过早启动
- 我已经创建了一个jquery转盘,并使用if条件来运行和停止转盘
- 只覆盖箭头键滚动事件
- Angularjs代码未在匿名函数中运行
- jquery设置为使用参数运行
- 如何根据时间运行不同的脚本
- JQuery覆盖不更改单选选项
- 无法使用因果报应运行覆盖
- 如何在2.10版本中覆盖moment.js区域设置格式.X,在2.8.x中运行
- 当AngularJS在运行时使用$http、$resource时,覆盖目标服务器
- 是否有任何Javascript代码覆盖工具的脚本运行在服务器端(没有浏览器)
- 是否有可能在运行' npm install '时覆盖本地的.npmrc ?
- 在grunt中完成代码覆盖后,运行项目现有的HTML文件
- Firefox扩展:如何从加载覆盖中运行脚本
- Javascript:如何在覆盖子类中的继承方法后运行父类的构造函数逻辑