Firefox扩展不能覆盖元素事件
Firefox Extension cannot override element events
我在试图覆盖表单元素的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
;不是元素本身。这导致了一些重要的限制。更多细节在这里:
在DOM节点或窗口对象的XPCNativeWrapper上赋值或读取on*属性将抛出异常。(使用addEventListener代替,如果之前使用"return false;",则在处理程序中使用"event.preventDefault();")
- https://developer.mozilla.org/en/XPCNativeWrapper Limitations_of_XPCNativeWrapper
相关文章:
- 元素事件处理程序到EXT.js面板中
- 浏览器中的javascript和td元素事件属性
- 主干清理元素事件
- 影响类的所有成员而不是一个元素事件的插件正在发生
- AngularJS - ngRepeat.在 ng 重复重新渲染后,需要将焦点集中在相同的元素事件上
- 在jQuery中,如何触发mootools中添加的元素事件
- 允许 Raphael/SVG 元素事件通过顶部分层的 HTML 触发
- CanJS未来元素事件绑定
- 重新选择所选选项时,Javascript/jQuery选择元素事件
- 类变量在元素事件中不可见
- 修改元素'事件函数的参数
- 如何过滤掉事件处理程序中的子元素事件
- 要求Javascript关注多个元素事件的模式
- 允许先触发其他绑定元素事件
- Firefox扩展不能覆盖元素事件
- 如何获取"mouseup"之后的元素事件完成
- 用于文档防止元素事件的Onclick事件
- 如何获取触发“onclick”的元素事件
- 向由子元素事件触发的表单元格添加类/从中删除类
- JavaScript在元素加载后立即绑定元素事件