исполняемый скрипт на onInstalled в дополнении Mozilla
Я очень новичок в разработке расширений Mozilla, даже я только что узнал о расширении, и разработка надстроек отличается, и я довольно застрял в том, что я вижу в MDN (Сеть разработчиков Mozilla), я хочу выполнить сценарий 'content_script.js', как только моя надстройка будет установлена, чтобы пользователю не нужно было перезагружать браузер
Я просто перетаскиваю свой xpi-файл и устанавливаю его, затем нажимаю кнопку на веб-странице, которая отправляет сообщение в мою надстройку, но моя надстройка прослушивает это сообщение только после перезагрузки веб-страницы.
//main.js
var chrome = require("chrome");
chrome.runtime.onInstalled.addListener(function(){
executeScript (contentscript.js) in tabs});
//also I tried
browser.runtime.onInstalled.addListener
Я пытался с этим, когда я узнал, что это для расширений Mozilla, а не для надстроек, так как он выдавал мне ошибки браузер не определен и chrome.runtime не определен
затем я нашел onInstalled () внутри AddonManager.addAddonListener ()https://developer.mozilla.org/en-US/Add-ons/Add-on_Manager/AddonListener#onInstalled ()
но я все еще не понимаю, как мне использовать это в моем дополнении
что бы я ни пытался, это дает мне ошибки
//main.js
const { AddonManager } = require("resource://gre/modules/AddonManager.jsm");
Cu.import("resource://gre/modules/AddonManager.jsm");
AddonManager.addAddonListener.onInstalled.addListener(function(){
console.log('installed');
tabs.executeScript(tabId, "../data/content_script.js", function(result) { console.log('result ='+result); });
});
код ниже удалил ошибку, но не сработал:
const { AddonManager } = require("resource://gre/modules/AddonManager.jsm");
Cu.import("resource://gre/modules/AddonManager.jsm");
var listener = {
onInstalled: function(addon) {
console.log('installed');
console.log(addon);
tabs.executeScript(tabId, "../data/content_script.js", function(result) { console.log('result ='+result); });
}
};
AddonManager.addAddonListener(listener);
Мой package.json выглядит так
{
"title": "test",
"name": "test",
"version": "1.0.0",
"description": "test addon corp",
"main": "lib/main.js",
"author": "test",
"engines": {
"firefox": ">=38.0a1",
"fennec": ">=38.0a1"
},
"license": "MIT",
"keywords": [
"jetpack"
]
}
main включает main.js, но все еще не выполняется, поскольку, когда я перезагружаю страницу только тогда, мой аддон работает.
Я думаю, что я делаю это совершенно неправильно, я сделал это в расширении Chrome, и это было легко, но у меня нет никаких идей для аддона Mozilla. Я даже не могу добраться до "установленного", выполнение content_script далеко. Пожалуйста, помогите если кто-то там знает, как это сделать.
заранее спасибо