Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在新窗口中打开外部链接时创建异常_Javascript_Jquery_Hostname - Fatal编程技术网

Javascript 在新窗口中打开外部链接时创建异常

Javascript 在新窗口中打开外部链接时创建异常,javascript,jquery,hostname,Javascript,Jquery,Hostname,我使用一个简单的Jquery脚本强制所有外部链接上的target=“\u blank”。问题是它在新窗口中打开了子域。我想修改这段代码,使其允许在同一浏览器会话中使用子域,而不是强制使用新窗口 例如,如果我的站点在,并且我有一个指向的链接,就会在一个新窗口中打开 守则: $("a").filter(function() { return this.hostname && this.hostname !== location.hostname; }).attr('targe

我使用一个简单的Jquery脚本强制所有外部链接上的
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('.'));