我在搜索堆栈溢出后得到了这段代码,它应该工作,但由于某种原因我收到了错误。我正在尝试编写JS,模拟用户单击具有特定ID的特定href链接。
这需要适用于所有主流浏览器(chrome,FF,IE,Safari)
这是代码:
HTML:
<a id="clickhere" href="http://link.com">Need to simulate user clicking on this link</a>
JS:
fireOnclick();
function fireOnclick() {
var target=document.getElementById("clickhere");
if(document.dispatchEvent) { // W3C
var oEvent = document.createEvent( "MouseEvents" );
oEvent.initMouseEvent("click", true, true,window, 1, 1, 1, 1, 1, false, false, false, false, 0, target[0]);
target[0].dispatchEvent( oEvent );
}
else if(document.fireEvent) { // IE
target[0].fireEvent("onclick");
}
}
感谢任何帮助。感谢
答案 0 :(得分:4)
您需要从target[0]
引用中删除[0]。 getElementById
返回一个元素,而不是元素数组。我在Chrome中测试过它运行良好。