Как можно запускать инициируемые атрибуты событий внедренных тегов html, которые ссылаются на функции в скрипте содержимого расширения Firefox? - PullRequest
0 голосов
/ 31 марта 2019

Я создаю свое первое расширение для Firefox. Доступная документация, предоставляемая Mozilla, не очень подробная, и приведенные скудные примеры не помогают ответить на мой вопрос.

Мое расширение использует скрипт содержимого для изменения веб-страницы путем введения тегов html. Некоторые из этих тегов имеют атрибуты событий, такие как onmouseenter и onmouseleave, которые ссылаются на функции в скрипте содержимого. Однако, несмотря на то, что HTML-код успешно внедряется в веб-страницы, инициируемые события дают справочную ошибку, поэтому функция не выполняется.

<span onmouseenter='onMouseEnter(this)'>Hello</span>

В своих исследованиях я думаю, что обнаружил возможную проблему. Сценарий контента находится в другой области видимости, поэтому инициируемые события не могут получить доступ к функциям скрипта контента.

function onMouseEnter(e){
   alert(e.innerText);
}

Что я могу сделать, чтобы сделать эту работу?

"content_scripts": [
 {
    "matches": ["<all_urls>"],
    "js": ["js/content_script.js"],
    "css": ["css/style.css"]    
 }
],

1 Ответ

0 голосов
/ 31 марта 2019

Спасибо CertainPerformance за ваш комментарий. Это привело меня к решению.

это то, что я сделал

function tester5(){
   var firstelementtags = document.getElementsByClassName(class_tag1);
   for(i=0; i<firstelementtags.length; i++){
       firstelementtags[i].addEventListener("mouseenter", onMouseEnter);
   }
   var secondelementtags = document.getElementsByClassName(class_tag2);
   for(j=0; j<secondelementtags.length; j++){
      secondelementtags[j].addEventListener("mousleave", onMouseLeave);
      secondelementtags[j].addEventListener("click", onClick);
   } 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...