У меня возникли проблемы с преобразованием сложного расширения Chrome в дополнение к Firefox. В расширении Chrome, автор использует некоторые Chrome API, такие какКак конвертировать расширение Chrome (с конкретными API-интерфейсами Chrome) в дополнение к Firefox?
chrome.extension.sendMessage
chrome.browserAction.setIcon
webkitNotifications.createNotification
chrome.tabs.sendMessage
chrome.extension.onMessage.addListener
chrome.browserAction.onClicked.addListener
chrome.privacy.services.autofillEnabled.get
chrome.runtime.onInstalled.addListener
chrome.tabs.query
localStorage
и так далее.
Я не знаю, как реализовать эти методы в дополнительном коде Firefox. Некоторые из этих API можно вызвать с помощью функции обратного вызова. Например:
chrome.extension.sendMessage ({
type: "get.identitieswithurl",
originUrl: lgmIdentitySave.originUrl,
actionUrl: lgmIdentitySave.actionUrl
},
function (resultIdentities) {
if(resultIdentities != null && resultIdentities.length > 0) {
lgmIdentitiesPage = resultIdentities;
fillFormsWithCredential(resultIdentities[0]);
if(resultIdentities.length > 1 && lgmSuggestionSelectIdDismissed == false) {
showSelectIdentitySuggestionBar();
}
}
}
);
От this question, я знаю, что код Firefox может быть записан как
// main add-on script
pageMod.PageMod({
include: "*.org",
contentScriptFile: self.data.url("my-script.js"),
// Send the content script a message inside onAttach
onAttach: function (worker) {
worker.port.emit("replacePage", "Page matches ruleset");
}
});
Но я до сих пор не знаю, как добавить функцию обратного вызова.
Спасибо за ваш идеальный редактировать @ Брок-Адамса. – penkzhou
Добро пожаловать. Удачи. –