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

125

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

Мухаммад Имран Тарик
источник
2
Дубликат: stackoverflow.com/questions/427479/…
Самич
Это 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();
}
Rodrigo-Силвейра
источник
7

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

$('#your-button').on('click', function(){
       $('<a href="https://www.some-page.com" target="blank"></a>')[0].click();    
})
relief.melone
источник
6

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

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

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

Фанис Махмалат
источник
Удивительная логика ИЛИ
Хаммад Саджид
1
Спасибо! Это отлично сработало.
thenomadicmann