Я пытаюсь написать расширение Firefox для Android, которое будет запускать событие каждый раз, когда изменяется веб-страница. Он контролирует, какие URL-адреса загружаются (все URL-адреса) и содержимое загруженной страницы (через проверку DOM). Моя проблема заключается в том, что событие загрузки окна с использованием приведенного ниже кода загружается только при открытии закладки, если вы переходите от страницы, никаких событий не запускается.Firefox for Android Extension: как запускать событие при загрузке каждой страницы?
Как подключить каждое событие загрузки страницы для любого URL-адреса?
Этот код все содержимое bootstrap.js:
Components.utils.import("resource://gre/modules/Services.jsm");
var windowListener = {
onOpenWindow: function(aWindow) {
console.log('vipro.openWindow');
let domWindow = aWindow.QueryInterface(Components.interfaces.nsIInterfaceRequestor).getInterface(Components.interfaces.nsIDOMWindowInternal || Components.interfaces.nsIDOMWindow);
domWindow.addEventListener("UIReady", function onLoad() {
domWindow.removeEventListener("UIReady", onLoad, false);
console.log('vipro.openWindow.loaded');
// ** ONLY EVER FIRED ONCE ** //
try {
var browser = Services.wm.getMostRecentWindow("navigator:browser");
} catch(e) {
console.log('vipro.openWindow.error.' + e.toString());
}
console.log('vipro.openWindow.loaded.DONE');
});
console.log('vipro.openWindow.DONE');
},
onCloseWindow: function(aWindow) {},
onWindowTitleChange: function(aWindow, aTitle) {},
};
function startup(data, reason) {
console.log('vipro.startup');
try {
let wm = Components.classes["@mozilla.org/appshell/window-mediator;1"].getService(Components.interfaces.nsIWindowMediator);
wm.addListener(windowListener);
} catch(e) {
console.log('vipro.startup.error.' + e.toString());
}
console.log('vipro.startup.DONE');
}
function shutdown() {
console.log('vipro.shutdown');
}
function install(aData, aReason) {}
function uninstall(aData, aReason) {}
Я не суетились, что приведенный выше код работает только для новых вкладок и не существующих (я намеренно держал это просто), это просто тот факт, что когда я перемещаюсь от исходной новой вкладки, я не получаю возможность подключиться к другим страницам.
Спасибо за участие! – Noitidart