Estoy tratando de abrir una nueva página cuando el usuario hace clic en un enlace. No puedo usar Angular 2 Router, porque no tiene ninguna funcionalidad para redirigir a una URL externa.
entonces, estoy usando window.location.href="...";
código HTML:
<button (click)="onNavigate()">Google</tn-submenu-link>código mecanografiado:
onNavigate(){ //this.router.navigateByUrl("https://www.google.com"); window.location.href="https://www.google.com"; }Pero, ¿cómo puedo abrirlo en una nueva pestaña? al usar window.location.href ?
onNavigate(){ window.open("https://www.google.com", "_blank"); }Una advertencia sobre el uso de window.open() es que si la URL que le pasa no tiene http:// o https:// delante, angular la trata como una ruta.
Para evitar esto, pruebe si la URL comienza con http:// o https:// y agréguela si no es así.
let url: string = ''; if (!/^http[s]?:\/\//.test(this.urlToOpen)) { url += 'http://'; } url += this.urlToOpen; window.open(url, '_blank');en HTML:
<a class="main-item" (click)="onNavigate()">Go to URL</a>O
<button class="main-item" (click)="onNavigate()">Go to URL</button>en el archivo TS:
onNavigate(){ // your logic here.... like set the url const url = 'https://www.google.com'; window.open(url, '_blank'); }