【发布时间】:2012-01-18 22:42:58
【问题描述】:
我在搜索堆栈溢出后得到了这段代码,它应该可以工作,但由于某种原因我遇到了错误。我正在尝试编写模拟用户单击具有特定 ID 的特定 href 链接的 JS。
这需要在所有主流浏览器(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");
}
}
感谢任何帮助。谢谢
【问题讨论】:
-
添加错误信息是什么?
-
你不能使用jquery有什么原因吗? $("#clickhere").click() 处理它并为您覆盖跨浏览器的情况
-
@JimDeville 你是对的,理想的情况是在这里使用一个框架来处理跨浏览器问题。
-
@JimDeville:你确定吗? Jquery 的点击只调用在 jQuery jsfiddle.net/mendesjuan/tYhrD 中设置的处理程序,它不模拟点击。该链接是一个完美的例子,因为您没有使用 jQuery 设置链接的行为
-
@JuanMendes:如果您向链接添加 onclick 处理程序,它会触发。只是导航没有触发(它仍然显示你在说什么)。奇怪的是 JQuery 不会导致导航:(
标签: javascript internet-explorer firefox google-chrome safari