Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/30.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_Angular_Typescript - Fatal编程技术网

Javascript 如何检查链接是否在同一个域中?然后在同一选项卡中加载链接

Javascript 如何检查链接是否在同一个域中?然后在同一选项卡中加载链接,javascript,angular,typescript,Javascript,Angular,Typescript,我有一个角度为8的应用程序 我有链接。对于exmaple:www.ad.nl。然后链接会将您重定向到一个新选项卡 但如果链接与网站位于同一域中,则在本例中为:localhost: 然后在同一选项卡中加载链接。所以没有不同的标签 这就是外部链接的功能: @Input() activities: Activity[]; isExternalLink(link: string): boolean { const currentHost = window.location.hostname;

我有一个角度为8的应用程序

我有链接。对于exmaple:www.ad.nl。然后链接会将您重定向到一个新选项卡

但如果链接与网站位于同一域中,则在本例中为:localhost:

然后在同一选项卡中加载链接。所以没有不同的标签

这就是外部链接的功能:

@Input() activities: Activity[];

 isExternalLink(link: string): boolean {
    const currentHost = window.location.hostname;
    const linkHost = link.replace(/^http?:\/\/([^\/]*)\/.*/, (match, g1) => g1);
    return currentHost !== linkHost;
  }

  getRouterLink(link: string): string {
    return '/' + link;
  }

这是模板:

  <a
      *ngIf="activity.link; else nolink"
      [href]="activity.link"
      [attr.target]="isExternalLink(activity.link) ? '_blank' : null"
      [attr.rel]="isExternalLink(activity.link) ? 'noopener noreferrer' : null"
    >


将加载到saperate选项卡中,而不是相同的选项卡中。

这样的内容就足够了:

isexternalink(链接:字符串):布尔值{
const currentHost=window.location.hostname;
return!linkHost.includes(当前主机);
}
例如,对于此页面(堆栈溢出)window.location.hostname返回“stackoverflow.com”。如果有链接“”,则方法将返回false。在另一种情况下,假设为“”,它将返回true