gpt4 book ai didi

javascript - 可以通过 javascript 设置 mouseover html 属性,但不能在 Firefox 中将函数分配给 mouseover 属性

转载 作者:行者123 更新时间:2023-11-30 18:36:59 28 4
gpt4 key购买 nike

显然我在做一些愚蠢的事情。

    processTextNodes: function processTextNodes(node) { 
node = node || content.document.body; // base node
var children = node.childNodes, i = 0;

while (node = children[i]) {
if (node.nodeType == 3 && node.textContent) { // text node found, replace enclosed text.
if (node.nodeName == "script") continue;

/*node.parentNode.setAttribute("onmouseover", "alert(\"AAA\");");*/
node.parentNode.onmouseover = function(){ alert("AAA") };
node.textContent = aatel.transliterate(node.textContent);
}
if (node.nodeType == 1) {
if (node.title) node.title = aatel.transliterate(node.title);
if (node.alt) node.alt = aatel.transliterate(node.alt);
}
processTextNodes(node);
i++;
}
},

以上是我正在编写的扩展中的一个方法。当按上面给出的方式运行时,我在错误控制台中得到以下信息

Error: uncaught exception: [Exception... "Component is not available"  nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)"  location: "JS frame :: chrome://aatel/content/overlay.js :: processTextNodes :: line 97"  data: no]

如果有任何歧义,第 97 行是:

node.parentNode.onmouseover = function(){ alert("AAA")};

如果我注释掉将函数分配给 .onmouseover 的行并取消注释其正上方的 setAttribute 行,它会按您预期的那样工作。大丑陋的不透明异常消息对我帮助不大。我究竟做错了什么? Javascript 不是我的强项。

最佳答案

看起来您正在尝试在 Firefox 扩展中使用事件。尝试使用 addEventListener 添加事件:

node.parentNode.addEventListener("mouseover", function () {
alert("AAA");
}, false);

关于javascript - 可以通过 javascript 设置 mouseover html 属性,但不能在 Firefox 中将函数分配给 mouseover 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7959400/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com