我正在构建我的第一个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"]
}
],
感谢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);
}
}