Ответ 1
onNavigate(){
window.open("https://www.google.com", "_blank");
}
Я пытаюсь открыть новую страницу, когда пользователь нажимает на ссылку. Я не могу использовать 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?
onNavigate(){
window.open("https://www.google.com", "_blank");
}
Одно из предостережений при использовании 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');
Другое возможное решение:
const link = document.createElement('a');
link.target = '_blank';
link.href = 'https://www.google.es';
link.setAttribute('visibility', 'hidden');
link.click();
вы можете сделать это в своем машинописном коде
onNavigate(){
var location="https://google.com",
}
В коде html добавьте тег привязки и передайте эту переменную (местоположение)
<a href="{{location}}" target="_blank">Redirect Location</a>
мы можем использовать target = blank для открытия в новой вкладке
<a href="https://www.google.co.in/" target="blank">click Here </a>
Я хочу поделиться с вами еще одним решением, если у вас есть абсолютная доля в 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 будет открыт на новой вкладке.