javascript window.location trong tab mới


124

Tôi đang chuyển hướng người dùng đến một số url thông qua window.locationnhưng url này mở trong cùng một tab trong trình duyệt. Tôi muốn nó được mở trong tab mới. Tôi có thể làm như vậy với window.location không? Có cách nào khác để thực hiện hành động này không?



window.locationmột yêu cầu? Hoặc có thể cung cấp các giải pháp JS khác không?
Khez

@Khez: JS khác có thể được cung cấp.
Muhammad Imran Tariq,

Câu trả lời:


28

Tôi không nghĩ có cách nào để làm điều này, trừ khi bạn đang viết tiện ích mở rộng trình duyệt. Bạn có thể thử sử dụng window.openvà hy vọng rằng người dùng đã đặt trình duyệt của họ để mở các cửa sổ mới trong các tab mới.


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

Tham số thứ hai là những gì làm cho nó mở trong một cửa sổ mới. Đừng quên đọc bài viết thông tin của Jakob Nielsen :)


10
nhưng nếu trình duyệt của bạn có cài đặt bị chặn trên cửa sổ bật lên thì sao? điều này sẽ không wok.
Pregmatch

@Alex meh ... không thực sự là câu trả lời "đúng". Đang thử điều này trong Firefox, nơi tôi ngăn cửa sổ bật lên, mã này không thành công.
TARKUS

Đã làm việc từ bookmarklet của tôi trong Edge 84.
Ryan Rodemoyer

14

Điều này phù hợp với tôi trên Chrome 53. Chưa thử nghiệm ở bất kỳ nơi nào khác:

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

6

với jQuery, nó thậm chí còn dễ dàng hơn và hoạt động trên cả Chrome

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

6

Bạn thậm chí có thể sử dụng

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

Thao tác này sẽ mở nó trên cùng một tab nếu cửa sổ bật lên bị chặn.


Logic HOẶC tuyệt vời
Hammad Sajid

1
Cảm ơn bạn! Điều này làm việc tuyệt vời.
thenomadicmann

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.