Я пытаюсь написать мобильный плагин firefox, который автоматически выполняет фрагмент кода JavaScript каждый раз при загрузке страницы. Я написал некоторый код для более ранней версии Fennec, но с системой многопроцессорной обработки в более новой версии Fennec (https://wiki.mozilla.org/Mobile/Fennec/Extensions/Electrolysis/), этот код должен был быть перенесен. Я основывался на учебном пособии от http://people.mozilla.com/~mfinkle/tutorials/, чтобы получить рабочая версия, которая выполняет фрагмент кода всякий раз, когда опция выбрана в меню браузера.Это решение состоит из двух частей, а именно overlay.js (для основного (приложения) процесса) и content.js (для дочернего (контента) Процесс). Overlay.js загружается в overlay.xul, а content.js загружается для новых вкладок с помощью следующего кода в overlay.js:
window.messageManager.loadFrameScript("chrome://coin/content/content.js", true);
Код в overlay.js отправляет сообщение на content.js всякий раз, когда выбирается опция в меню браузера, и затем корректно выполняется требуемый код (некоторые теги сценария просто добавляются в заголовок страницы). Однако я не знаю, как автоматически выполнить код при загрузке страницы. Я попробовал следующее в content.js:
function addCoin(aMessage) { ... }
// this executes the desired code every time an option is clicked in the browser menu
addMessageListener("coin:addCoin", addCoin);
// this attempts to execute the code on every page load; i.e., after this script has
been loaded for the new tab
addCoin(null);
Последнее утверждение, однако, не имеет никакого эффекта. Затем я попытался добавить следующее выражение в конце:
sendAsyncMessage("coin:scriptLoaded", { });
Этот оператор отправляет сообщение в сценарий overlay.js, который регистрирует прослушиватель для этого сообщения и в ответ просто отправляет то же сообщение, что и при нажатии кнопки в меню браузера, т. Е. «Coin: addCoin». Однако это тоже не сработало. Наконец, я попытался найти определенные события, которые мог прослушать сценарий overlay.js (что-то вроде «tabOpened» или что-то в этом роде), но ничего не смог найти.
У кого-нибудь есть идеи, как автоматически выполнять код при каждой загрузке страницы?
С уважением,
William