如何使火狐扩展运行js在指定的域
How to make firefox extension run js on specified domain
我已经做了一个Chrome扩展在过去,它只运行在一个域(说test.com
),并执行我的JS文件(说my.js
)一旦该域打开。我希望把它移植到Firefox。
如何做到这一点?我是Firefox插件开发的新手。我试着从Firefox文档中阅读,但无法理解
是一个bootstrap插件还是Overlay插件?
无论如何……试试on page load
给出的代码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);
我自己做的是(例如只在imdb.com上运行):
let doc = aEvent.originalTarget;
if (doc.location.hostname.match(/'.imdb'.com$/)) {
// this is the page that you want to run on
}
如果您在Firefox中使用Addon-SDK,您几乎只需要page-mod模块,该模块在域/URL与page-mod期望的匹配时执行脚本。看看这个,也看看内容脚本是如何与插件通信的。
相关文章:
- Ember.js-自动使动作成为目标控制器
- JS代码使IE9和Safari冻结,在Opera中不起作用
- 如何在d3.js中使矩形呈弧形/弯曲
- 在 JS 中使 for 循环在没有库的情况下等待
- 原型js 如何使定期更新程序隐藏基于ajax响应的类元素
- 挖空JS模板使UI在编辑时“闪现”
- React.js:如何使内联样式在状态更改时自动更新进度条
- 如何在D3.js中使矩形居中
- Three.js地球仪-使国家/地区可点击
- Three.js-如何使我的文本精灵更清晰
- 如何在 js 中使对象在 js 中具有 javascript 中的外部值
- 在拉斐尔.js中使物体相互推挤
- js,使 JSON 对象成为字符串 - 简单的方法
- 如何在 Node.js 中使文件成为模块
- 三.js阴影使一切都变黑
- 在 Cytoscape js 中使节点不可点击
- 挖空JS只使复杂对象数组的一个属性可观察
- JS如何使按钮与脚本连接
- jQuery或JS,使元素离开屏幕底部并在顶部输入
- 在three.js中使用线框的立方体