Rozkazuję użytkownika na jakiś adres URL przez window.location, ale ten adres URL otwiera się w tej samej karcie w przeglądarce. Chcę, aby był otwarty w nowej karcie. Czy mogę to zrobić z window.Location? Czy istnieje inny sposób na wykonanie tej akcji?

148
Muhammad Imran Tariq 26 wrzesień 2011, 15:02

5 odpowiedzi

Najlepsza odpowiedź

Nie sądzę, że istnieje sposób, aby to zrobić, chyba że piszesz przedłużenie przeglądarki. Można spróbować użyć window.open i mając nadzieję, że użytkownik ma swoją przeglądarkę, aby otworzyć nowe okna w nowych zakładkach.

42
Ian Oxley 26 wrzesień 2011, 11:05
window.open('https://support.wwf.org.uk', '_blank');

Drugi parametr jest tym, co czyni go w nowym oknie. Nie zapomnij przeczytać Dżob Nielsenowy artykuł informacyjny :)

479
Shane Reustle 18 marzec 2015, 16:39

Działa to dla mnie na Chrome 53. Nie testowano nigdzie indziej:

function navigate(href, newTab) {
   var a = document.createElement('a');
   a.href = href;
   if (newTab) {
      a.setAttribute('target', '_blank');
   }
   a.click();
}
16
rodrigo-silveira 11 październik 2016, 21:40

Z jQuery jest jeszcze łatwiejszy i działa również na Chrome

$('#your-button').on('click', function(){
       $('<a href="https://www.some-page.com" target="blank"></a>')[0].click();    
})
8
relief.melone 20 wrzesień 2017, 08:51

Raczej idziesz na wyskakujące, osobiście lubiłem to rozwiązanie, wspomniane na tym wątku pytania javascript: Lokalizacja.href, aby otworzyć w nowym oknie / karcie ?.

$(document).on('click','span.external-link',function(){
        var t               = $(this), 
            URL             = t.attr('data-href');        
        $('<a href="'+ URL +'" target="_blank">External Link</a>')[0].click();

    });

Praca Przykład.

2
OyeHarish 5 marzec 2019, 06:43