Javascript jQuery正在添加目标_blank未在新选项卡中打开
关于,我正在尝试使我的站点工作,以便在新选项卡中打开任何外部链接 上述问题的每个答案的jQuery都有效(这意味着当我使用Chrome或Safari的inspector时,我看到Javascript jQuery正在添加目标_blank未在新选项卡中打开,javascript,jquery,Javascript,Jquery,关于,我正在尝试使我的站点工作,以便在新选项卡中打开任何外部链接 上述问题的每个答案的jQuery都有效(这意味着当我使用Chrome或Safari的inspector时,我看到target=“\u blank”被添加到外部链接中,但单击链接本身不会在新选项卡或新窗口中打开 现代浏览器是否已经发生了变化,以至于这个功能不再有效?或者我是否错过了其他功能 更新:根据@hakam fostok的请求,以下是相关代码: JS: 链接(如Chrome inspector中所示): 更新2:我不确定这
target=“\u blank”
被添加到外部链接中,但单击链接本身不会在新选项卡或新窗口中打开
现代浏览器是否已经发生了变化,以至于这个功能不再有效?或者我是否错过了其他功能
更新:根据@hakam fostok的请求,以下是相关代码:
JS:
链接(如Chrome inspector中所示):
更新2:我不确定这是否重要,但该应用程序是Rails 4.2.7.1,运行jQuery 2.2.4。通常,如果要修改现有HTML元素的运行时属性,必须使用
prop
函数,而不是attr
。请参阅文档
简单来说,区别在于prop
设置HTML元素的相应属性,而attr
仅设置属性值。属性值被指定为运行时属性的初始值
$(function() {
$('a').prop('target', function() {
if(this.host == location.host) return '_self'
else return '_blank'
});
});
请提供“anchor”html元素的完整版本好吗?这应该可以正常工作。请尝试使用
prop
而不是attr
设置目标。属性作为相应html元素实例的初始值。只是尝试了一下-它不起作用。仍然只是简单地打开了相同的属性Chrome和Safari中的窗口。然后请尝试创建一个JSFIDLE来复制您的问题,以便我们可以查看它。还请注意,浏览器可能会由于某些本地设置或情况而覆盖此设置。因此,要测试它,请尝试创建两个静态链接(不带jQuery
)所以你可以看看它是否能工作。-当然,JSFIDLE也能工作。我想知道是Rails在某种程度上阻止了这一点吗?我想你的意思是在我的应用程序中创建一个“硬编码”target=“\u blank”
链接。当我这样做时,是的,它能按预期工作。
<a href="http://espn.com" target="_blank">ESPN</a>
$(function() {
$('a').prop('target', function() {
if(this.host == location.host) return '_self'
else return '_blank'
});
});