javascript window.location в новой вкладке


125

Я перенаправляю пользователя на какой-то URL-адрес, window.locationно этот URL-адрес открывается на той же вкладке в браузере. Я хочу, чтобы он был открыт в новой вкладке. Могу я сделать это с помощью window.location? Есть ли другой способ сделать это действие?



Это window.locationтребование? Или можно предложить другие JS-решения?
Khez

@Khez: могут быть предложены другие JS.
Мухаммад Имран Тарик

Ответы:


28

Я не думаю, что есть способ сделать это, если только вы не пишете расширение для браузера. Вы можете попробовать использовать window.openи надеяться, что в браузере пользователя настроено открытие новых окон на новых вкладках.


443
window.open('https://support.wwf.org.uk', '_blank');

Второй параметр - это то, что заставляет его открываться в новом окне. Не забудьте прочитать информативную статью Якоба Нильсена :)


10
но что, если ваши браузеры заблокировали настройки во всплывающих окнах? это не будет работать.
предварительный матч 05

@Alex meh ... не совсем "правильный" ответ. Пробуя это в Firefox, где я предотвращаю всплывающие окна, этот код не работает.
TARKUS

Работал с моего букмарклета в Edge 84.
Райан Родемойер,

14

У меня это работает в Chrome 53. Больше нигде не тестировал:

function navigate(href, newTab) {
   var a = document.createElement('a');
   a.href = href;
   if (newTab) {
      a.setAttribute('target', '_blank');
   }
   a.click();
}

7

с jQuery это еще проще и работает и в Chrome

$('#your-button').on('click', function(){
       $('<a href="https://www.some-page.com" target="blank"></a>')[0].click();    
})

6

Вы даже можете использовать

window.open('https://support.wwf.org.uk', "_blank") || window.location.replace('https://support.wwf.org.uk');

Это откроет его на той же вкладке, если всплывающее окно заблокировано.


Удивительная логика ИЛИ
Хаммад Саджид

1
Спасибо! Это отлично сработало.
thenomadicmann

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.