1

Я пытаюсь написать расширение 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) {} 

Я не суетились, что приведенный выше код работает только для новых вкладок и не существующих (я намеренно держал это просто), это просто тот факт, что когда я перемещаюсь от исходной новой вкладки, я не получаю возможность подключиться к другим страницам.

ответ

1

Найдено несколько иной подход к этой странице:

https://developer.mozilla.org/en-US/Add-ons/SDK/Tutorials/Mobile_development

Используя макет, который CFX обеспечивает и не используя загрузчик ... самозагрузки я могу добиться того, что мне нужно, используя page- мод.

+1

Спасибо за участие! – Noitidart

 Смежные вопросы

  • Нет связанных вопросов^_^