Javascript 如何检查链接是否在同一个域中?然后在同一选项卡中加载链接
我有一个角度为8的应用程序 我有链接。对于exmaple:www.ad.nl。然后链接会将您重定向到一个新选项卡 但如果链接与网站位于同一域中,则在本例中为:localhost: 然后在同一选项卡中加载链接。所以没有不同的标签 这就是外部链接的功能: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;
@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