当用户单击角度应用程序外部的链接时,我想显示一个弹出窗口。
如何检查网址是否是外部网址? 例如。指向相同的域,但文档不同
<a [href]="someUrl" appCheckExternalUrl>{{someUrl}}</a>
@Directive({
selector: '[appCheckExternalUrl]'
})
export class CheckExternalUrlDirective {
constructor(private el: ElementRef<HTMLAnchorElement>) { }
get url() { return this.el.nativeElement.href; }
get isExternalUrl() {
return ???;
}
}
棘手的部分是它取决于路由器设置。
假设我的应用托管在mydomain.com/myapp
中,并定义了路由/myroute
。然后:
mydomain.com/myapp/myroute
-内部路线mydomain.com/anotherapp
-外部路由。但是,如果路由器使用井号标签路由,则
mydomain.com/myapp/myroute
是外部的。此URL也是外部的,因为它不是由应用程序处理的:
mydomain.com/myapp/assets/logo.png
答案 0 :(得分:-1)
您可以使用window.origin来获取您所在页面的URL,即角度页面。
因此,您只需要比较网站的来源和href的来源。