WebExtensions — получение глобальных свойств окна

#javascript #firefox #firefox-addon #firefox-addon-webextensions

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

Вопрос:

Итак, я следовал приведенному здесь руководству:https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Your_first_WebExtension

Где вы создаете простое расширение, которое изменяет DOM, вводящий скрипт.

Но затем я добавил эти строки на borderify.js (сценарий содержимого) :

 console.log(window); //Prints an object that has a "$" property;
console.log(window.$); //Undefined
console.log($); //Error, "$" is undefined
  

А затем я включил его на веб-сайте, который, как я знал, содержал jQuery в тегах скрипта.

Что меня очень смущает, почему, когда я печатаю объект window, он показывает мне объект, у которого есть свойство $ , но затем я пытаюсь получить к нему доступ, он не существует?

И как мне получить к нему доступ?

Есть несколько похожих вопросов, но все они очень старые, и это быстро меняющаяся тема.

(Пожалуйста, обратите внимание, что это не связано с jQuery, это просто пример)

Ответ №1:

Возможно, вам захочется прочитать о совместном использовании объектов со скриптами страниц в MDN, особенно предупреждение!

Это должно сработать для вашего варианта использования:

 console.log(window.wrappedJSObject.$)