如何用javascript模拟点击锚定标记?

如何用javascript模拟点击锚定标记?,javascript,jquery,html,Javascript,Jquery,Html,在我的站点上,我有一个div容器,其中包含,和。它触发锚定标记的onclick事件,但不跟随新选项卡中的链接。EDIT 经过一些额外的测试。。。。 编辑 经过一些额外的测试。。。。 浏览器对通过javascript在新选项卡/窗口中打开链接非常严格 如果他们允许您在用户按enter键时单击javascript并打开一个新选项卡,而您知道这是合法的原因,那么当用户做任何事情时,垃圾邮件发送者可能会滥用该功能,让javascript单击广告和垃圾邮件链接。遗憾的是,浏览器无法判断你的链接页面是合

在我的站点上,我有一个div容器,其中包含,和。它触发锚定标记的onclick事件,但不跟随新选项卡中的链接。

EDIT

经过一些额外的测试。。。。

编辑

经过一些额外的测试。。。。


浏览器对通过javascript在新选项卡/窗口中打开链接非常严格

如果他们允许您在用户按enter键时单击javascript并打开一个新选项卡,而您知道这是合法的原因,那么当用户做任何事情时,垃圾邮件发送者可能会滥用该功能,让javascript单击广告和垃圾邮件链接。遗憾的是,浏览器无法判断你的链接页面是合法的,而不是垃圾邮件或金钱化的点击诱饵

几乎唯一的选项是window.open,您已经尝试过了:浏览器将始终查看用户对弹出窗口阻止的设置,以及是否在选项卡或窗口中打开的设置,默认设置是严格的,尤其是在Firefox和Internet Explorer中,而在Chrome和Safari中更是如此

如果您需要多个页面,您可能会选择一种不对抗浏览器反垃圾邮件防御的替代方法,即在基于iframe的模式覆盖中打开内容

从用户界面的角度来看,这将是类似的——以一种形式提供与用户相关的内容,用户可以在完成后关闭它并返回主页

模态叠加被广泛使用,并且可能为用户所熟悉。例如,它们现在已经成为共享页面、登录和其他简单交互或辅助内容的标准


浏览器对通过javascript在新选项卡/窗口中打开链接非常严格

如果他们允许您在用户按enter键时单击javascript并打开一个新选项卡,而您知道这是合法的原因,那么当用户做任何事情时,垃圾邮件发送者可能会滥用该功能,让javascript单击广告和垃圾邮件链接。遗憾的是,浏览器无法判断你的链接页面是合法的,而不是垃圾邮件或金钱化的点击诱饵

几乎唯一的选项是window.open,您已经尝试过了:浏览器将始终查看用户对弹出窗口阻止的设置,以及是否在选项卡或窗口中打开的设置,默认设置是严格的,尤其是在Firefox和Internet Explorer中,而在Chrome和Safari中更是如此

如果您需要多个页面,您可能会选择一种不对抗浏览器反垃圾邮件防御的替代方法,即在基于iframe的模式覆盖中打开内容

从用户界面的角度来看,这将是类似的——以一种形式提供与用户相关的内容,用户可以在完成后关闭它并返回主页

模态叠加被广泛使用,并且可能为用户所熟悉。例如,它们现在已经成为共享页面、登录和其他简单交互或辅助内容的标准


你想看到它通过视觉效果点击吗?jQuery触发器听起来像你需要的。为什么不在按enter键时触发DoSomeStuff,而不是触发a标记?@putvande:DoSomeStuff更改href属性。但我需要点击这个锚,以便在新标签中打开链接。如果我尝试在DoSomeStuff中打开window.open,那么firefox将阻止此新窗口作为弹出窗口。是否希望看到它以视觉效果单击?jQuery触发器听起来像是您需要的。为什么不在按enter键时触发DoSomeStuff,而不是触发a标记?@putvande:DoSomeStuff更改href属性。但我需要点击这个锚,以便在新标签中打开链接。如果我尝试在DoSomeStuff中打开window.open,那么firefox将阻止这个新窗口作为一个弹出窗口。正如我在最初的帖子中所说,jQuery的.click在这里不起作用,它实际上没有单击锚点,它只触发onclick事件。除非你的DoSomeStuff调用event.preventDefault或event.stopPropagation;然后应触发完整事件。http://jsfiddle.net/JZYWZ/ 如您所见,它会触发onclick事件,但实际上并不遵循链接。我已经做了一些调整。。。我明白你的意思,这里正在发生的是一个更新提琴是的,这很有效。但问题在于firefox。它会阻止window.open作为一个弹出窗口,所以它不会起作用。正如我在最初的帖子中所说,jQuery的。单击在这里不起作用,它实际上不会单击锚,它只会触发onclick事件。除非您的DoSomeStuff调用event.preventDefault或event.stopPropagation;然后应触发完整事件。http://jsfiddle.net/JZYWZ/ 如您所见,它会触发onclick事件,但实际上并不遵循链接。我已经做了一些调整。。。我明白你的意思,这里正在发生的是一个更新提琴是的,这很有效。但问题在于firefox。它会阻止window.open作为弹出窗口打开,因此不会起作用。
$('input[type="text"]').on('keyup', function(event){
    if(event.keyCode === 13){
        DoSomeStuff();
        window.open($('a').attr('href'));      
    }
});