Tôi đang cố "buộc" Safari hoặc IE7 mở một trang mới bằng một tab mới .
Theo chương trình, ý tôi là:
window.open('page.html','newtaborsomething');
Tôi đang cố "buộc" Safari hoặc IE7 mở một trang mới bằng một tab mới .
Theo chương trình, ý tôi là:
window.open('page.html','newtaborsomething');
Câu trả lời:
Bạn không thể kiểm soát trực tiếp điều này, vì đó là một tùy chọn do người dùng Internet Explorer kiểm soát.
Mở trang bằng Window.open với một tên cửa sổ khác sẽ mở trong một cửa sổ trình duyệt mới như cửa sổ bật lên HOẶC mở trong một tab mới, nếu người dùng đã định cấu hình trình duyệt để làm như vậy.
Bạn có thể, trong Firefox, nó hoạt động, thêm thuộc tính target = "_ newtab" vào liên kết để buộc mở một tab mới.
<a href="some url" target="_newtab">content of the anchor</a>
Trong javascript, bạn có thể sử dụng
window.open('page.html','_newtab');
Nói như vậy, tôi đồng ý một phần với Sam. Bạn không nên bắt người dùng mở các trang mới hoặc tab mới mà không cho họ thấy một gợi ý về những gì sẽ xảy ra trước khi họ nhấp vào liên kết.
Hãy cho tôi biết nếu nó cũng hoạt động trên trình duyệt khác (tôi không có cơ hội thử nó trên trình duyệt khác ngoài Firefox vào lúc này).
Chỉnh sửa: thêm tài liệu tham khảo cho ie7 Có lẽ liên kết này có thể hữu ích
http://social.msdn.microsoft.com/forums/en-US/ieextensiondevelopment/thread/951b04e4-db0d-4789-ac51-82599dc60405/
Những người trong số bạn đang cố gắng sử dụng những thứ sau:
window.open('page.html', '_newtab');
thực sự nên nhìn vào phương thức window.open.
Tất cả những gì bạn đang làm là yêu cầu trình duyệt mở một cửa sổ mới NAMED "_newtab" và tải page.html vào đó. Mỗi trang mới bạn tải sẽ tải vào cửa sổ đó. Tuy nhiên, nếu người dùng đặt trình duyệt của họ để mở trang mới trong tab mới thay vì cửa sổ mới, trình duyệt sẽ mở một tab. Bất kể, nó sử dụng cùng một tên cho cửa sổ hoặc tab.
Nếu bạn muốn các trang khác nhau mở trong các cửa sổ hoặc tab khác nhau, bạn sẽ phải thay đổi TÊN của cửa sổ / tab mới thành một cái gì đó khác, chẳng hạn như:
window.open('page2.html', '_newtab2');
Tất nhiên tên cho cửa sổ / tab mới có thể là bất kỳ tên nào như page1, page2, page3, v.v. thay vì _newtab2.
Việc người dùng muốn sử dụng tab mới hay cửa sổ mới tùy thuộc vào người dùng, việc sửa đổi hành vi này không phải là việc của nhà phát triển. Tôi không nghĩ rằng bạn có thể làm điều đó.
Thú cưng của tôi - Tôi không thích khi các trang web buộc tôi phải mở trong một cửa sổ / tab mới - Tôi hoàn toàn có khả năng đưa ra quyết định đó cho chính mình. Đặc biệt là khi họ làm điều đó trong javascript - điều đó thực sự vô ích.
Bạn đã thử thích chưa
var open_link = window.open('','_blank');
open_link.location="somepage.html";
Tôi đã tìm ra trong Chrome,
window.open('page.html','_newtab')
sẽ chỉ hoạt động một lần.
Bạn có thể dùng:
window.open(ct.getNewHref(),'_newtab' + Math.floor(Math.random()*999999));
Để mở nhiều tab mới.
Mã tôi sử dụng với jQuery:
$("a.btn_external").click(function() {
url_to_open = $(this).attr("href");
window.open(url_to_open, '_blank');
return false;
});
Điều này rất hữu ích để phân biệt giữa các sự kiện nhấp chuột của cha mẹ với con. Bằng cách sử dụng phương pháp này, bạn không kích hoạt sự kiện nhấp chuột của phụ huynh.
<a href="page.html" target="_blank">foo</a>
Điều này hoạt động 100%
window.open('http://www.google.com/','_newtab' + Date.now());
Nếu bạn muốn, bạn có thể sử dụng phương pháp này, hơi khó, nhưng sẽ cung cấp chức năng mong muốn:
jQuery('<a/>', {
id: 'foo',
href: 'http://google.com',
title: 'Become a Googler',
rel: 'external',
text: 'Go to Google!',
target:'_blank',
style:'display:none;'
}).appendTo('#mySelector');
$('#foo').click()
Điều này có thể hoạt động nếu bạn có thể gọi một tệp hàng loạt (tôi sử dụng php với XP sp2 và IE8 ... bạn có thể thử IE7, dunno). Sử dụng phần sau (hoặc tương tự) trong tệp .bat của bạn để mở Windows: Bắt đầu "" C: \ Progra ~ 1 \ Intern ~ 1 \ iexplore "http://www.site.com". Không có khoảng cách giữa dấu ngoặc kép và C: \ Progr ... vv Tại một số thời điểm, điều này có thể bắt đầu mở các cửa sổ mới (tức là target = "_ blank") thay vì các tab mới, nhưng hoạt động đến một thời điểm; không được thử nghiệm rộng rãi. Để sử dụng điều này trong một tệp hàng loạt thông thường (CMD.exe), bạn có thể cần phải mở sẵn một cửa sổ. Chỉ chia sẻ vài điều tôi tình cờ gặp. CHỈNH SỬA để làm rõ.
<a href="http://www.google.com/" target="_self">New Tab Example</a>
Hoạt động trong IE7.
Trân trọng,
Glenn