是否有可能通过JavaScript触发链接(或任何元素)的点击事件?

我正在写一些JavaScript代码,需要click链接的click事件。 在Internet Explorer中,我可以做到这一点

 var button = document.getElementById('myButton'); button.click(); 

但是这在Firefox中不起作用,并且我假定有其他的浏览器。 在Firefox中,我已经做到了

 var button = document.getElementById('myButton'); window.location = button.href; 

我觉得这不是最好的办法。 有没有更好的方法来触发click事件? 最好的东西,不pipe元素或浏览器的types工作。

http://jehiah.cz/archive/firing-javascript-events-properly

 function fireEvent(element,event) { if (document.createEvent) { // dispatch for firefox + others var evt = document.createEvent("HTMLEvents"); evt.initEvent(event, true, true ); // event type,bubbling,cancelable return !element.dispatchEvent(evt); } else { // dispatch for IE var evt = document.createEventObject(); return element.fireEvent('on'+event,evt) } } 

我不会推荐它,但是可以调用HTML元素的onclick属性作为方法。

 <a id="my-link" href="#" onclick="alert('Hello world');">My link</a> document.getElementById('my-link').onclick(); 

这通常是不可能的,afaik,mozilla具有click()方法,但仅用于input元素,而不是链接。

为什么不只是创build一个函数,该button将调用onClick处理程序,并且每当你想“点击”button调用该函数呢?

Mozilla对允许的JS动作/事件有更严格的策略 – 我也有类似的click()事件问题。 它在某些元素上被禁用以防止XSS。

redirect浏览器有什么问题? 这到处可以工作。

嘿,我不是故意挖掘一个旧的线程 – 但我也在寻找这个相同的问题的答案,并发现了一个新的functionjQuery的1.3X(我有一个与Ajax加载内容的问题)

以下是我如何实现它:

HTML

 <a class="navlink" href="mypage.html">Online Estimate</a> 

加载脚本

 $(".pagelink").click(function(){ $(".navlink[href="+$(this).attr("href")+"]").trigger('click'); return false; }); 

加载的HTML

 <a class="pagelink" href="mypage.html">Online Estimate</a> 

该function是“触发事件”…
更多细节在这里: http : //docs.jquery.com/Events/trigger#eventdata

我正在拼命寻找这个安静的,最简单的一个似乎工作!

 document.getElementById('foo').onclick(); 

它工作在铬7.0.5和8.0.6