MDN wants to learn about developers like you: https://qsurvey.mozilla.com/s3/MDN-survey

Add-ons using the techniques described in this document are considered a legacy technology in Firefox. Don't use these techniques to develop new add-ons. Use WebExtensions instead. If you maintain an add-on which uses the techniques described here, consider migrating it to use WebExtensions.

Starting from Firefox 53, no new legacy add-ons will be accepted on addons.mozilla.org (AMO) for desktop Firefox and Firefox for Android.

Starting from Firefox 57, only extensions developed using WebExtensions APIs will be supported on Desktop Firefox and Firefox for Android.

Even before Firefox 57, changes coming up in the Firefox platform will break many legacy extensions. These changes include multiprocess Firefox (e10s), sandboxing, and multiple content processes. Legacy extensions that are affected by these changes should migrate to use WebExtensions APIs if they can. See the "Compatibility Milestones" document for more information.

A wiki page containing resources, migration paths, office hours, and more, is available to help developers transition to the new technologies.

Перед использованием, вам нужно изучить основы jpm.

Консоль для DOM-объекта полезна для отладки JavaScript. Так как DOM-объекты недоступны для главного кода дополнения (add-on), то SDK предоставляет свой собственный глобальный объект "консоль" (console) с большинством таких же методов, как и у DOM-консоли, включая методы для протоколирвоания ошибок (error), предупреждений (warning) или информационных сообщений. Для доступа к консоли не нужно получать что-либо, используя require(). Она уже доступна автоматически.

Метод console.log() выводит информационное сообщение:

console.log("Hello World");

Попробуйте:

  • создайте новую папку и перейдите в неё
  • выполните jpm init со значениями по умолчанию
  • откройте "index.js" и добавьте строку, указанную в примере выше
  • выполните jpm run

Firefox запустится, и в терминале, где вы ввели jpm run, появится следующая строка:

info: Hello World!

Консоль в скриптах Content Scripts

Вы можете использовать консоль в скриптах content scripts так же, как и вашем главном коде дополнения. Следующий аддон (add-on) выведет в лог HTML-содержимое каждой закладки, загруженной пользователем, используя console.log() изнутри скрипта content script:

require("sdk/tabs").on("ready", function(tab) {
  tab.attach({
    contentScript: "console.log(document.body.innerHTML);"
  });
});

Консоль Output

Если вы запускаете дополнение из терминала (например, выполня jpm run или jpm test), тогда сообщения консоли появятся в этом же терминале.

Если вы установили расширение в Firefox тогде сообщения появятся в консоли браузера Firefox.

Но обратите внимание, что по умолчанию вызовы console.log() не отобразят ничего в Error Console для любых установленных дополнений. Это правило работает и для дополнений, установленных с использованием Add-on Builder, и для установленных с помощью утилит, таких как Extension Auto-installer.

Смотрите "Уровни логирования" в справочной документации для более подробной информации.

Дальнейшее изучение

Полное API консоли смотри в API-справочнике.

Метки документа и участники

 Внесли вклад в эту страницу: pk.prog, ldone
 Обновлялась последний раз: pk.prog,