gpt4 book ai didi

javascript - Firefox 扩展无法覆盖元素事件

转载 作者:行者123 更新时间:2023-11-30 06:02:15 25 4
gpt4 key购买 nike

我在尝试覆盖表单元素的 onsubmit 事件时遇到问题。我使用 addEventListener 添加监听器没问题,但对于我的特殊情况,我需要替换 onsubmit 但出于某种原因,当我这样做时,它给了我这个错误:

Error: Component is not available = NS_ERROR_NOT_AVAILABLE

我的代码很简单:

gBrowser.contentDocument.getElementById("theform").onsubmit = function() {
return false;
};

本质上我想阻止表单提交,但这段代码失败并抛出上述错误。使用 addEventListener 返回 false 似乎不会阻止表单提交。

谢谢。

最佳答案

出于安全原因,扩展中 getElementById 返回的对象是围绕 DOM 元素的 XPCNativeWrapper;它不是元素本身。这导致了一些重要的限制。此处有更多详细信息:

Assigning to or reading an on* property on an XPCNativeWrapper of a DOM node or Window object will throw an exception. (Use addEventListener instead, and use "event.preventDefault();" in your handler if you used "return false;" before.)

关于javascript - Firefox 扩展无法覆盖元素事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7562688/

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