我有一个angular 5组件,需要在新选项卡中打开链接,我尝试了以下操作:
<a href="www.example.com" target="_blank">page link</a>
Run Code Online (Sandbox Code Playgroud)
当我打开链接时,应用程序变慢并打开如下路径:
localhost:4200/www.example.com
Run Code Online (Sandbox Code Playgroud)
我的问题是:正确地做到这一点的正确方法是什么?
Har*_*hid 39
使用window.open()。这很简单!
在您的component.html文件中-
<a (click)="goToLink("www.example.com")">page link</a>
Run Code Online (Sandbox Code Playgroud)
在您的component.ts文件中-
goToLink(url: string){
window.open(url, "_blank");
}
Run Code Online (Sandbox Code Playgroud)
小智 19
<a [routerLink]="" (click)="openSite(SiteUrl)">{{SiteUrl}}</a>
Run Code Online (Sandbox Code Playgroud)
并在您的 Component.ts 中
openSite(siteUrl) {
window.open("//" + siteUrl, '_blank');
}
Run Code Online (Sandbox Code Playgroud)
wen*_*jun 17
我刚刚发现了一种使用路由器打开新选项卡的替代方法。
在你的模板上,
<a (click)="openNewTab()" >page link</a>
Run Code Online (Sandbox Code Playgroud)
在你的 component.ts 上,你可以使用 serializeUrl 将路由转换成一个字符串,它可以与 window.open()
openNewTab() {
const url = this.router.serializeUrl(
this.router.createUrlTree(['/example'])
);
window.open(url, '_blank');
}
Run Code Online (Sandbox Code Playgroud)
C.I*_*ngo 14
只需添加target="_blank"到
<a mat-raised-button target="_blank" [routerLink]="['/find-post/post', post.postID]"
class="theme-btn bg-grey white-text mx-2 mb-2">
Open in New Window
</a>
Run Code Online (Sandbox Code Playgroud)
小智 12
在app-routing.modules.ts文件中:
{
path: 'hero/:id', component: HeroComponent
}
Run Code Online (Sandbox Code Playgroud)
在component.html文件中:
target="_blank" [routerLink]="['/hero', '/sachin']"
Run Code Online (Sandbox Code Playgroud)
Mor*_*kop 11
某些浏览器可能会阻止由window.open(url, "_blank");. 另一种方法是创建一个链接并单击它。
...
constructor(@Inject(DOCUMENT) private document: Document) {}
...
openNewWindow(): void {
const link = this.document.createElement('a');
link.target = '_blank';
link.href = 'http://www.your-url.com';
link.click();
link.remove();
}
Run Code Online (Sandbox Code Playgroud)
zhi*_*min 10
像这样使用完整的URL作为href:
<a href="https://www.example.com/" target="_blank">page link</a>
Run Code Online (Sandbox Code Playgroud)
尝试这个
window.open(this.url+'/create-account')
Run Code Online (Sandbox Code Playgroud)
无需使用 '_blank'
`window.open` by default open link in new tab
Run Code Online (Sandbox Code Playgroud)