2011-07-13 32 views
50

Tôi đang sử dụng bit này mã jQuery để có được href của liên kết:jQuery: đi đến URL với target = "_ blank"

var url = $(this).attr('href'); 

- và chút mã này để đi đến href rằng:

window.location = url; 

Mọi thứ chỉ là cách tôi muốn, ngoại trừ trang mới mở trong cùng cửa sổ như trang trước và tôi muốn mở trang đó trong cửa sổ hoặc tab mới (thứ gì đó trong html thuần túy đạt được bằng cách sử dụng công thức target = "_ blank").

Câu hỏi: Làm cách nào để mở href trong cửa sổ hoặc tab mới bằng jQuery?

Cảm ơn sự giúp đỡ của bạn!

Trả lời

69

Bạn cần phải mở một cửa sổ mới:

window.open(url); 

https://developer.mozilla.org/en-US/docs/DOM/window.open

+0

Cảm ơn bạn. Đó chỉ là những gì tôi cần. Một câu hỏi khác: có cách nào để yêu cầu trình duyệt mở một tab mới thay vì một cửa sổ mới không? –

+1

Tôi tin rằng nó phụ thuộc vào cách trình duyệt được định cấu hình (tức làcài đặt để mở cửa sổ bật lên trong tab hoặc cửa sổ). –

+0

Cảm ơn bạn một lần nữa. –

52

sử dụng,

var url = $(this).attr('href'); 
window.open(url, '_blank'); 

Cập nhật: các href là khấm khá hơn được lấy ra với prop vì nó sẽ trở lại url đầy đủ và nó nhanh hơn một chút.

var url = $(this).prop('href'); 
+0

Cảm ơn bạn! Điều này rất hữu ích! –

+2

Hãy cẩn thận, nó phải là 'var url = $ (this) .prop ('href'); ' –

1

Nếu bạn muốn tạo cửa sổ bật lên thông qua jQuery thì bạn sẽ cần sử dụng plugin. Cái này có vẻ như nó sẽ làm những gì bạn muốn:

http://rip747.github.com/popupwindow/

Cách khác, bạn luôn có thể sử dụng window.open hàm JavaScript của.

Lưu ý rằng với một trong hai cách tiếp cận, cửa sổ mới phải được mở để đáp ứng với đầu vào/hành động của người dùng (ví dụ: nhấp chuột vào một liên kết hoặc nút). Nếu không, trình chặn bật lên của trình duyệt sẽ chỉ chặn cửa sổ bật lên.

+0

Cảm ơn bạn. Không, không phải cửa sổ bật lên. Chỉ là một cửa sổ bình thường. Thông thường tôi sẽ chỉ cho phép html làm công việc, nhưng một bit trước của mã tôi sử dụng trong cùng một trình đơn vô hiệu hóa hành vi mặc định cho tất cả các liên kết. –

7

Câu hỏi: Làm thế nào tôi có thể mở href trong cửa sổ mới hoặc tab với jQuery?

var url = $(this).attr('href').attr('target','_blank'); 
0

Chức năng .ready được sử dụng để chèn các thuộc tính khi trang đã tải xong.

$(document).ready(function() { 
    $("class name or id a.your class name").attr({"target" : "_blank"}) 
}) 
0

Hãy thử sử dụng mã sau đây.

$(document).ready(function(){ 
    $("a[@href^='http']").attr('target','_blank'); 
}); 
2

Phát hiện xem thuộc tính đích có được sử dụng không và chứa "_blank". Đối với thiết bị di động không thích "_blank", đây là giải pháp thay thế đáng tin cậy.

$('.someSelector').bind('touchend click', function() { 

     var url = $('a', this).prop('href'); 
     var target = $('a', this).prop('target'); 

     if(url) { 
      // # open in new window if "_blank" used 
      if(target == '_blank') { 
       window.open(url, target); 
      } else { 
       window.location = url; 
      } 
     }   
    }); 
Các vấn đề liên quan