2017-03-11 49 views
0

参考this SO question,我试图使我的网站工作,以便任何外部链接在新选项卡中打开。jQuery添加目标_blank不在新选项卡中打开

上述问题的每个答案的jQuery作品(意思是我看到target="_blank"被添加到外部链接,当我使用Chrome浏览器或Safari的检查器,但点击链接本身不会在新标签页或新窗口中打开。

拥有现代化的浏览器改变,使得这一功能不再起作用还是我失去了别的东西

更新:??每@哈坎 - fostok的要求,这里是有关的代码:

JS :

$(function() { 
    $('a').attr('target', function() { 
    if(this.host == location.host) return '_self' 
    else return '_blank' 
    }); 
}); 

链接(如图Chrome检查):

<a href="http://espn.com" target="_blank">ESPN</a> 

更新2:我不知道这个问题,但应用程序是Rails的4.2.7.1,运行的jQuery 2.2.4 。

+0

能否请您提供完整版的“锚的HTML元素?这应该没有问题 –

+0

请尝试使用'prop'而不是'attr'设置'target'。属性是相应HTML元素实例的* initial *值。 –

回答

1

通常,如果您想要修改现有HTML元素的运行时属性,则必须使用prop函数而不是attr。请参阅文档here

的差异在简单的话是prop设置HTML元素的对应的属性,而attr的属性值。属性值是运行时属性的初始值。

$(function() { 
    $('a').prop('target', function() { 
    if(this.host == location.host) return '_self' 
    else return '_blank' 
    }); 
}); 
+0

刚刚尝试过 - 它没有奏效。仍然只是在Chrome和Safari中打开相同的窗口。 – CDub

+0

然后请尝试创建一个可以复制您的问题的jsfiddle,以便我们可以查看它。 –

+0

另请注意,在某些本地设置或情况下,浏览器可能会覆盖此设置。因此,为了测试它,尝试创建两个静态链接(不带'jQuery'),以便您可以看到它是否可用。 –