Javascript 在新窗口中打开外部链接时创建异常
我使用一个简单的Jquery脚本强制所有外部链接上的Javascript 在新窗口中打开外部链接时创建异常,javascript,jquery,hostname,Javascript,Jquery,Hostname,我使用一个简单的Jquery脚本强制所有外部链接上的target=“\u blank”。问题是它在新窗口中打开了子域。我想修改这段代码,使其允许在同一浏览器会话中使用子域,而不是强制使用新窗口 例如,如果我的站点在,并且我有一个指向的链接,就会在一个新窗口中打开 守则: $("a").filter(function() { return this.hostname && this.hostname !== location.hostname; }).attr('targe
target=“\u blank”
。问题是它在新窗口中打开了子域。我想修改这段代码,使其允许在同一浏览器会话中使用子域,而不是强制使用新窗口
例如,如果我的站点在,并且我有一个指向的链接,就会在一个新窗口中打开
守则:
$("a").filter(function() {
return this.hostname && this.hostname !== location.hostname;
}).attr('target', '_blank');
我该怎么做呢?改变
return this.hostname && this.hostname !== location.hostname;
到
只有这样,才能比较第一个点之后的所有内容。如果没有“点”意味着它不是子域,而是正常的外部链接,该怎么办。在这种情况下它还能工作吗?啊,是的,如果不包括“www”,这可能会变得棘手。您将不得不对代码进行一些修改,以确保它在所有用例中都能正常工作,可能只有在主机中包含多个点时才应用上述代码。
return this.hostname && this.hostname.substr(this.hostname.indexOf('.')) !== location.hostname.substr(location.hostname.indexOf('.'));