Добавление скрипта содержимого с помощью simple-prefs

#javascript #firefox-addon #firefox-addon-sdk

#javascript #firefox-дополнение #firefox-дополнение-sdk

Вопрос:

У меня есть скрипт содержимого, который должен быть добавлен на страницу, если я выберу этот параметр в настройках дополнения. Я могу добавить настройку bool, но я абсолютно не могу понять, как с ней работать на main.js файл. Настройка равна

   "preferences": [{
        "description": "",
        "name": "tagHide",
        "type": "bool",
        "value": false,
        "title": "Hide something"}]
  

И в основной файл я добавил это

 var data = require("sdk/self").data;
var pageMod = require("sdk/page-mod");
var prefs = require("sdk/simple-prefs").prefs;
function onPrefChange(prefName) {
    if (prefs.tagHide) {
        console.log(prefs.tagHide);
        pageMod.PageMod({
            include: "*.corbina.net",
            contentScriptFile: data.url("cutter.js")
        });
    };
}
  

Этот код регистрирует «true» вместо «false» в консоли, но pagemod, похоже, не работает. Какие-либо ошибки, которые у меня здесь есть?

Ответ №1:

Есть несколько проблем с этим кодом как есть:

  • вы нигде в этом коде не привязываете onPrefChange, например require("sdk/simple-prefs").on("", onPrefChange); , смотрите Документы
  • вы не применяете модификацию страницы к существующим вкладкам, смотрите Здесь в документах, в частности, этот attachTo параметр.
  • даже если ваш page-mod подключен, я никак не могу увидеть, что вы выгружаете эффекты скрипта содержимого?

Комментарии:

1. Большое спасибо, добавил onPrefChange, и это работает как шарм. Все еще размышляю о том, как удалить contentscript, хотя