我有一个链接('a'标签)。 我试图用javascript点击它。 而.click();在FF en IE中表现不错,它在Chrome中失败了。 (chrome说对象没有click方法)。
触发'onclick'或重定向到'href'将无法完成任务。
关于如何做到这一点的任何想法? 我最好不要为此获得整个图书馆。
答案 0 :(得分:2)
在非IE浏览器中使用dispatchEvent()
答案 1 :(得分:1)
我知道你不想要一个图书馆,但是这个版本的篇幅很小,你可以使用event.simulate。它是一个PrototypeJS lib,但我确信移植会很容易。
要在原型中使用它,您可以调用:
$('my_anchor').simulate('click');
它可以跨浏览器工作,没有任何问题。
答案 2 :(得分:1)
var event = document.createEvent("MouseEvents");
event.initMouseEvent("click", true, true, window,
0, 0, 0, 0, 0,
false, false, false, false,
0, null);
element.dispatchEvent(event);
应该在chrome
中使用答案 3 :(得分:0)
尝试阅读引用的帖子,作者有同样的问题 他通过在onLoad回调中运行脚本来解决它;
<body onLoad="DefaultButtonFix()">
参考:Click event fires in IE/Firefox, but Chrome is dropping the event assignment
答案 4 :(得分:0)
我用这个:
function dispatchEvent(el, e)
{
// console.log("dispatching");
if ("createEvent" in document)
{
var evt = document.createEvent("HTMLEvents");
evt.initEvent(e, false, true);
el.dispatchEvent(evt);
}
else
{
el.fireEvent("on" + e);
}
}
dispatchEvent(document.getElementById("mylink"), "click");
答案 5 :(得分:-1)
如果你知道jQuery只是创建一个匿名函数并监听onclick事件。您需要为href指定一个类或ID,
e.g。 HTML:
<a href='' id='clickMe'>Click here</a>
jQuery:
$(function() {
$("#clickMe").click(function() {
... the action you wish to perform ...
})
})
希望这会有所帮助。 戴夫