jQuery自动点击链接

时间:2011-09-01 07:11:03

标签: javascript jquery click

好的,所以我一遍又一遍地搜索没有答案。 有人可以解释为什么

不适用于.trigger('click')

<a id="openNew" href="http://www.example.org">Click me</a>

<script type='text/javascript'> 
    $(window).load(function(){
        $('#openNew').addClass("external").attr({ target: "_blank", href: 'http://www.google.com' }).trigger('click');
    });
</script>

并且它不适用于.click()

<script type='text/javascript'> 
    $(window).load(function(){
        $('#openNew').addClass("external").attr({ target: "_blank", href: 'http://www.google.com' }).click();
    });
</script>

不管我做什么都不点击链接。它只有在我点击它时才有效。如何自动点击? 在这上工作大约1个小时,让我发疯,我知道我一定是在做一些愚蠢的事情。

JsFiddle为了您的方便。

我不介意使用纯JavaScript进行任何其他解决方案。

4 个答案:

答案 0 :(得分:1)

使用elem[0].click();代替elem.click();,因为您要调用本机点击功能,而不仅仅是触发点击事件。

顺便说一句:弹出窗口拦截器会阻止它实际打开一个新窗口(幸运的是)。

答案 1 :(得分:1)

无法模拟用户物理点击链接。既然你使用的是target ='_ blank',我认为你想要一个新窗口?所以你需要使用window.open。哪个弹出窗口拦截器不喜欢。

答案 2 :(得分:0)

实际上它被点击了,但没有打开链接..请查看http://jsfiddle.net/H2KuF/5/

可能您需要使用JS链接打开新的浏览器窗口。

这是我找到的样品:

function open2(url, opt){
  if (opt == 0) // current window
    window.location = url;
  else if (opt == 1) // new window
    window.open(url);
  else if (opt == 2) // background window
    {window.open(url); self.focus();}
}

答案 3 :(得分:0)

Karl swedberg表示here(其中一条评论)

  

使用.trigger('click')不会触发本机点击事件。

执行以下操作将起作用:

<a id="openNew" href="http://www.example.org">Click me</a>

<script type='text/javascript'>
    $(window).load(function(){
        $('#openNew').addClass("external").attr({ target: "_blank", href: 'http://www.google.com' })[0].click();
    });
</script>

演示here