Угловое 2 - перенаправление на внешний URL-адрес и открытие на новой вкладке

Я пытаюсь открыть новую страницу, когда пользователь нажимает на ссылку. Я не могу использовать Angular 2 Router, потому что у него нет никаких функций для перенаправления на внешний URL.

поэтому я использую window.location.href= "...";

html-код:

<button (click)="onNavigate()">Google</tn-submenu-link>

машинописный код:

onNavigate(){
        //this.router.navigateByUrl("https://www.google.com");
        window.location.href="#" onclick="location.href='https://www.google.com'; return false;";
    }

Но как я могу открыть его на новой вкладке? при использовании window.location.href?

Ответы

Ответ 1

onNavigate(){
    window.open("https://www.google.com", "_blank");
}

Ответ 2

Одно из предостережений при использовании window.open() заключается в том, что если URL-адрес, который вы передаете ему, не имеет http:// или https:// перед ним, угловой рассматривает его как маршрут.

Чтобы обойти это, проверьте, если URL-адрес начинается с http:// или https:// и добавляет его, если это не так.

let url: string = '';
if (!/^http[s]?:\/\//.test(this.urlToOpen)) {
    url += 'http://';
}

url += this.urlToOpen;
window.open(url, '_blank');

Ответ 3

Другое возможное решение:

const link = document.createElement('a');
link.target = '_blank';
link.href = 'https://www.google.es';
link.setAttribute('visibility', 'hidden');
link.click();

Ответ 4

вы можете сделать это в своем машинописном коде

onNavigate(){
var location="https://google.com",
}

В коде html добавьте тег привязки и передайте эту переменную (местоположение)

<a href="{{location}}" target="_blank">Redirect Location</a>

Ответ 5

мы можем использовать target = blank для открытия в новой вкладке

 <a href="https://www.google.co.in/" target="blank">click Here </a>

Ответ 6

Я хочу поделиться с вами еще одним решением, если у вас есть абсолютная доля в URL-адресе

Решение SharePoint с помощью ${_spPageContextInfo.webAbsoluteUrl}

HTML:

<button (click)="onNavigate()">Google</button>

Машинопись:

onNavigate()
{
    let link = '${_spPageContextInfo.webAbsoluteUrl}/SiteAssets/Pages/help.aspx#/help';
    window.open(link, "_blank");
}

и URL будет открыт на новой вкладке.