我想要一种通用的(跨浏览器)方法来获取浏览器执行对象的指定事件的默认行为
,最好不要触发任何已附加的监听器。
这种类型的问题以前已经被问过了,但是在已经处于一个事件中的情况下,和/或者严格地讲述延迟默认操作直到稍后发生。
基本上,假设您有一个DOM元素(您不知道哪个)变量,并且您想调用click
,使得如果它是anchor
,它会遵循其href
,如果它是input[type="submit"]
,它将提交表单。但是,不能触发该元素的click
事件的监听器(其中可能包含preventDefault()
的内容)。
对于那些需要回答问题的人来说;如果您正在为仅支持fireEvent()
的浏览器实现dispatchEvent()
之类的东西,您可能希望这样做。
两个函数都会返回true
,如果默认值没有被"prevented",但是只有dispatchEvent()
实际上会跟进并调用默认值。
作为一个侧面问题,jQuery 的trigger()
旨在完成此操作(尽管在触发监听器之后),并且可以跨浏览器使用,也许解决方案就在那里?虽然 jQuery 很好,但我想知道它所调用的原始方法(如果它确实可以在诸如 IE8 之类的浏览器上运行的话)。