【发布时间】:2009-12-03 11:31:35
【问题描述】:
我想使用 JavaScript 模拟对页面上任何链接的点击。如果该链接具有绑定到其“onclick”事件的某些函数(由我无法控制的任何其他 JS),则必须调用该函数,否则该链接应以正常方式运行并打开一个新页面。
我不确定仅检查“onclick”处理程序的值是否足够。我想构建它以便它适用于任何链接元素。
我无法控制使用任何 JS 库(不一定是 jQuery)或仅使用 JavaScript 绑定到链接的 onclick 事件的函数。
编辑:借助下面的答案,看起来可以检查使用 jQuery 或使用 onclick 属性附加的事件处理程序。如何检查使用 addEventListener / 任何其他 JS 库附加的事件处理程序以使其万无一失?
【问题讨论】:
-
“如何检查使用 addEventListener / 任何其他 JS 库附加的事件处理程序,以使其万无一失”?现在 that 是重复的 ;) 见 stackoverflow.com/questions/446892/…
-
仍然没有解决方案,但是 :) 也许反过来尝试通过创建 MouseEvent 来实际模拟点击? stackoverflow.com/questions/1421584/…
-
@Ankit:是的,第二个答案将触发处理程序,无论它们是如何连接的。您仍然说“否则链接应该以正常方式运行并打开一个新页面”。你会有问题的。抱歉,我没有时间在这里提供更多帮助。
-
@Crescent 我尝试了上述方法并且它有效(该方法仅适用于 Firefox)dispatchEvent() 方法根据 preventDefault() 是否被触发返回一个布尔值。我检查该值,如果链接的 href 属性设置为查看链接是否应该打开另一个页面,developer.mozilla.org/En/DOM/Element.dispatchEvent
-
@Crescent 顺便说一句,你很有帮助。它认为我将更多地使用 StackOverflow 而不是无休止的谷歌搜索 :)
标签: javascript jquery onclick