2015-12-29 1 views
0

Я разрабатываю аддон для Firefox. В файле содержание сценария У меня есть строкаНевозможно получить область действия в скрипте контента Firefox Addon

angular.element(document.getElementById("angularAppDiv")).scope(); 

возвращает null. Однако, если я нахожу одну и ту же строку в консоли браузера, я получаю объект scope? Может ли кто-нибудь указать, что происходит и почему?

ответ

1

По умолчанию, содержание скрипты, загружаемые дополнения и сценариев, загруженных веб-страницами, изолированы друг от друга:

  • скрипты контента не могут взаимодействовать непосредственно со сценариями страницы или доступа JavaScript объекты, которые они создают
  • Скрипты страниц не могут напрямую взаимодействовать с сценариями контента или объектами доступа, которые они создают.

Что вы можете сделать, это вставить этот скрипт тег из скрипта содержимого на страницу:

document.head.innerHTML = document.head.innerHTML + '<script> console.log(angular.element(document.getElementById("angularAppDiv")).scope());</script>'; 

Проверить this ссылки для получения дополнительной информации.

+0

Я просто попытался использовать метод unsafeWindow, упомянутый в указанной вами ссылке, но он не работал? window.scope = область сохранения области. Но выполнение unsafeWindow.scope все равно регистрировало нуль. –

+0

@ Irtza.QC Невозможно использовать область действия при попытке. Одна вещь, которую вы можете сделать, - это вручную вставить тег '