好的,所以我一遍又一遍地搜索没有答案。 有人可以解释为什么
不适用于.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进行任何其他解决方案。
答案 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