模拟Chrome中的“a”标记点击

时间:2012-01-10 10:13:40

标签: javascript html google-chrome javascript-events

我有一个链接('a'标签)。 我试图用javascript点击它。 而.click();在FF en IE中表现不错,它在Chrome中失败了。 (chrome说对象没有click方法)。

触发'onclick'或重定向到'href'将无法完成任务。

关于如何做到这一点的任何想法? 我最好不要为此获得整个图书馆。

6 个答案:

答案 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 ...
  }) 
})

希望这会有所帮助。 戴夫