是否有可能通过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