我在尝试覆盖表单元素的onsubmit
事件时遇到问题。添加addEventListener
的监听器没有问题,但对于我的特定情况,我需要替换 onsubmit,但出于某种原因,当我这样做时,它会给我这个错误:
Error: Component is not available = NS_ERROR_NOT_AVAILABLE
我的代码就是这样:
gBrowser.contentDocument.getElementById("theform").onsubmit = function() {
return false;
};
基本上我想阻止表单提交,但是这段代码失败并引发上述错误。使用addEventListener
返回false
似乎并未阻止表单提交。
感谢。
答案 0 :(得分:1)
出于安全原因,getElementById
在扩展中返回的对象是围绕DOM元素的XPCNativeWrapper
;它不是元素本身。这导致一些重要的限制。更多细节在这里:
在DOM节点或Window对象的XPCNativeWrapper上分配或读取on *属性将引发异常。 (改为使用addEventListener,如果之前使用了“return false;”,则在处理程序中使用“event.preventDefault();”。)