如何触发在firefox扩展的内容脚本中引用函数的已注入html标记的触发事件属性?

问题描述 投票:0回答:1

我正在构建我的第一个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"]    
 }
],
javascript firefox-addon
1个回答
0
投票

感谢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);
   } 
}
© www.soinside.com 2019 - 2024. All rights reserved.