javascript window.location ในแท็บใหม่


124

ฉันกำลังเปลี่ยนผู้ใช้ไปยัง URL บางส่วนwindow.locationแต่ URL นี้เปิดขึ้นในแท็บเดียวกันในเบราว์เซอร์ ฉันต้องการให้เปิดในแท็บใหม่ ฉันสามารถทำได้ด้วย window.location หรือไม่? มีวิธีอื่นในการดำเนินการนี้หรือไม่?



คือwindow.locationความต้องการหรือไม่? หรือโซลูชัน JS อื่น ๆ สามารถนำเสนอได้หรือไม่?
Khez

@Khez: JS อื่น ๆ สามารถนำเสนอได้
Muhammad Imran Tariq

คำตอบ:


28

ฉันไม่คิดว่าจะมีวิธีทำเช่นนี้เว้นแต่คุณจะเขียนส่วนขยายเบราว์เซอร์ คุณสามารถลองใช้window.openและหวังว่าผู้ใช้จะตั้งค่าเบราว์เซอร์ให้เปิดหน้าต่างใหม่ในแท็บใหม่


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

พารามิเตอร์ที่สองคือสิ่งที่ทำให้เปิดในหน้าต่างใหม่ อย่าลืมอ่านบทความข้อมูลของ Jakob Nielsen :)


10
แต่จะเกิดอะไรขึ้นถ้าเบราว์เซอร์ของคุณบล็อกการตั้งค่าในป๊อปอัป? นี้จะไม่ตื่น
pregmatch

@ Alex meh ... ไม่ใช่คำตอบที่ "ถูกต้อง" จริงๆ ลองใช้ใน Firefox ซึ่งฉันป้องกันไม่ให้หน้าต่างป๊อปอัปรหัสนี้ล้มเหลว
TARKUS

ทำงานจาก bookmarklet ของฉันใน Edge 84
Ryan Rodemoyer

14

สิ่งนี้ใช้ได้กับฉันใน Chrome 53 ยังไม่ได้ทดสอบที่อื่น:

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

6

ด้วย 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');

เพื่อเปิดขึ้นมาในแท็บเดียวกันหากป๊อปอัปถูกบล็อก


Amazing OR Logic
Hammad Sajid

1
ขอบคุณ! สิ่งนี้ได้ผลดี
thenomadicmann

2

ค่อนข้างจะป๊อปอัปฉันชอบโซลูชันนี้เป็นการส่วนตัวที่กล่าวถึงในเธรดคำถามนี้ JavaScript: location.href เพื่อเปิดในหน้าต่าง / แท็บใหม่?

$(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();

    });

การทำงานตัวอย่างเช่น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.