在我的网站上,我有一个div
容器,其中包含<input>
和<a onclick="DoSomeStuff();" href="#" target="_blank">
元素,用作按钮。现在,DoSomeStuff();
根据href
元素的值修改input
属性。
我需要模仿用户在input
元素上按Enter键后点击此锚标记。我知道如何检测此输入,但我不知道如何单击此锚点。 jQuery的.click()
在这里不起作用,它只触发锚标记的onclick()
,但实际上并没有点击锚点。
修改:以下是我想要做的示例:http://jsfiddle.net/JZYWZ/。它会触发锚标记的onclick
事件,但不会跟随新标签中的链接。
答案 0 :(得分:3)
浏览器对通过javascript打开新标签/窗口中的链接非常严格。
如果他们允许您点击javascript并在用户按下enter
时打开新标签(因为您知道这是合法的原因),垃圾邮件发送者可能滥用该功能来点击广告和垃圾邮件用户执行 任何 时的链接。遗憾的是,浏览器无法判断您的链接页是否合法,而不是垃圾邮件或货币化的clickbait。
open the url in new tab using javascript的唯一选项是window.open
,您已尝试过:浏览器将始终查看用户的设置,弹出窗口阻止以及是否在标签页或窗口中打开 - 默认设置是严格的,特别是在Firefox和Internet Explorer中(在Chrome和Safari中较少)。
一种可能的替代方法,您将无法对抗浏览器的反垃圾邮件防御措施,即以模式覆盖打开内容(如果您需要,则以iframe为基础)多页)。 Here's one example library。
从UI的角度来看,它将是类似的 - 以一种形式向用户提供相关内容,他们可以将其关闭并在完成后返回主页面。
模态叠加广泛使用,可能熟悉用户。例如,它们现在非常适合共享页面,登录和其他简单交互或侧面内容。 Example:
答案 1 :(得分:1)
修改
经过一些额外的测试....
$('input[type="text"]').on('keyup', function(event){
if(event.keyCode === 13){
DoSomeStuff();
window.open($('a').attr('href'));
}
});