Tôi khá mới đối với Firefox và các phần mở rộng của Firefox. Có điều gì đó giống như tập lệnh sử dụng JavaScript chạy mỗi lần tải trang không? Tiện ích chrome của tôi chèn tệp css tạo thẻ liên kết bằng cách sử dụng js. Làm thế nào để chuyển cổng này sang Firefox?Tương đương với tập lệnh nội dung trong phần mở rộng của Firefox?
5
A
Trả lời
7
Bạn muốn có API pageMod.
var pageMod = require("page-mod");
pageMod.PageMod({
include: "*.example.org",
contentScript: 'window.alert("Page matches ruleset");'
});
0
Bạn có thể sử dụng mozIJSSubScriptLoader để thực thi JavaScript (chrome: //myExtension/content/script.js) mỗi khi một webpage loads. Dưới đây là mã mẫu mà bạn cần phải sửa đổi theo thư mục chrome của bạn
window.addEventListener("load", function load(event){
window.removeEventListener("load", load, false); //remove listener, no longer needed
myExtension.init();
},false);
var myExtension = {
init: function() {
var appcontent = document.getElementById("appcontent"); // browser
if(appcontent){
appcontent.addEventListener("DOMContentLoaded", myExtension.onPageLoad, true);
}
var messagepane = document.getElementById("messagepane"); // mail
if(messagepane){
messagepane.addEventListener("load", function(event) { myExtension.onPageLoad(event); }, true);
}
},
onPageLoad: function(aEvent) {
var doc = aEvent.originalTarget; // doc is document that triggered "onload" event
// do something with the loaded page.
// doc.location is a Location object (see below for a link).
// You can use it to make your code executed on certain pages only.
var loader = Components.classes["@mozilla.org/moz/jssubscript-loader;1"].getService(Components.interfaces.mozIJSSubScriptLoader);
loader.loadSubScript("chrome://myExtension/content/script.js", doc);
// add event listener for page unload
aEvent.originalTarget.defaultView.addEventListener("unload", function(event){ myExtension.onPageUnload(event); }, true);
},
onPageUnload: function(aEvent) {
// do something
}
};
0
Tôi đã từng sử dụng Greasemonkey trên Firefox. Trên thực tế, Tiện ích mở rộng của Chrome đã bắt đầu như là một phần của Greasemonkey và là nguồn gốc của các tập lệnh nội dung.
Tôi nên đặt trang này ở trang nào? Một tệp js có trong browser.xul có lẽ? –
@JacquesBlom: Bạn đặt nó vào 'lib/main.js' cho phần mở rộng được xây dựng với [Add-on SDK] (https://addons.mozilla.org/en-US/developers/builder). –
khi tôi thực hiện việc này: bao gồm: "facebook.com" - nó sẽ không hoạt động –