ฉันกำลังพยายาม "บังคับ" ให้ Safari หรือ IE7 เปิดหน้าใหม่โดยใช้แท็บใหม่โดยใช้แท็บใหม่
โดยทางโปรแกรมฉันหมายถึงสิ่งที่ต้องการ:
window.open('page.html','newtaborsomething');
ฉันกำลังพยายาม "บังคับ" ให้ Safari หรือ IE7 เปิดหน้าใหม่โดยใช้แท็บใหม่โดยใช้แท็บใหม่
โดยทางโปรแกรมฉันหมายถึงสิ่งที่ต้องการ:
window.open('page.html','newtaborsomething');
คำตอบ:
คุณไม่สามารถควบคุมสิ่งนี้ได้โดยตรงเนื่องจากเป็นตัวเลือกที่ควบคุมโดยผู้ใช้ Internet Explorer
การเปิดหน้าโดยใช้ Window.open ด้วยชื่อหน้าต่างอื่นจะเปิดขึ้นในหน้าต่างเบราว์เซอร์ใหม่เช่นป๊อปอัปหรือเปิดในแท็บใหม่หากผู้ใช้กำหนดค่าเบราว์เซอร์ให้ทำเช่นนั้น
คุณสามารถใช้งานได้ใน Firefox เพิ่มแอตทริบิวต์ target = "_ newtab" ไปที่จุดยึดเพื่อบังคับให้เปิดแท็บใหม่
<a href="some url" target="_newtab">content of the anchor</a>
ในจาวาสคริปต์คุณสามารถใช้ไฟล์
window.open('page.html','_newtab');
บอกว่าฉันเห็นด้วยกับแซมบางส่วน คุณไม่ควรบังคับให้ผู้ใช้เปิดหน้าใหม่หรือแท็บใหม่โดยไม่แสดงคำใบ้ว่าจะเกิดอะไรขึ้นก่อนที่พวกเขาจะคลิกลิงก์
แจ้งให้เราทราบว่ามันใช้งานได้บนเบราว์เซอร์อื่นด้วยหรือไม่ (ตอนนี้ฉันไม่มีโอกาสได้ลองใช้กับเบราว์เซอร์อื่นที่ไม่ใช่ Firefox)
แก้ไข: เพิ่มการอ้างอิงสำหรับ ie7 บางทีลิงก์นี้อาจเป็นประโยชน์
http://social.msdn.microsoft.com/forums/en-US/ieextensiondevelopment/thread/951b04e4-db0d-4789-ac51-82599dc60405/
พวกคุณพยายามใช้สิ่งต่อไปนี้:
window.open('page.html', '_newtab');
ควรดูที่วิธี window.open จริงๆ
สิ่งที่คุณทำคือบอกให้เบราว์เซอร์เปิดหน้าต่างใหม่ NAMED "_newtab" และโหลด page.html ลงไป ทุกหน้าใหม่ที่คุณโหลดจะโหลดลงในหน้าต่างนั้น อย่างไรก็ตามหากผู้ใช้ตั้งค่าเบราว์เซอร์ให้เปิดหน้าใหม่ในแท็บใหม่แทนหน้าต่างใหม่ผู้ใช้จะเปิดแท็บ ไม่ว่าจะใช้ชื่อเดียวกันสำหรับหน้าต่างหรือแท็บ
หากคุณต้องการให้หน้าต่างๆเปิดขึ้นในหน้าต่างหรือแท็บต่างๆคุณจะต้องเปลี่ยน NAME ของหน้าต่าง / แท็บใหม่เป็นอย่างอื่นเช่น:
window.open('page2.html', '_newtab2');
แน่นอนว่าชื่อของหน้าต่าง / แท็บใหม่อาจเป็นชื่ออะไรก็ได้เช่น page1, page2, page3 ฯลฯ แทนที่จะเป็น _newtab2
ขึ้นอยู่กับผู้ใช้ว่าต้องการใช้แท็บใหม่หรือหน้าต่างใหม่ไม่ใช่ธุรกิจของนักพัฒนาที่จะแก้ไขพฤติกรรมนี้ ฉันไม่คิดว่าคุณจะทำได้
สัตว์เลี้ยงของฉัน - ฉันเกลียดมันเมื่อไซต์บังคับให้ฉันเปิดหน้าต่าง / แท็บใหม่ - ฉันค่อนข้างสามารถตัดสินใจด้วยตัวเองได้ โดยเฉพาะอย่างยิ่งเมื่อพวกเขาทำในจาวาสคริปต์ - นั่นไม่เป็นประโยชน์จริงๆ
คุณลองแล้วชอบ
var open_link = window.open('','_blank');
open_link.location="somepage.html";
ฉันพบใน Chrome
window.open('page.html','_newtab')
จะทำงานเพียงครั้งเดียว
คุณสามารถใช้ได้:
window.open(ct.getNewHref(),'_newtab' + Math.floor(Math.random()*999999));
เพื่อเปิดแท็บใหม่หลายแท็บ
รหัสที่ฉันใช้กับ jQuery:
$("a.btn_external").click(function() {
url_to_open = $(this).attr("href");
window.open(url_to_open, '_blank');
return false;
});
สิ่งนี้มีประโยชน์ในการแยกความแตกต่างระหว่างเหตุการณ์การคลิกของผู้ปกครองในเด็ก เมื่อใช้วิธีนี้คุณจะไม่ทริกเกอร์เหตุการณ์การคลิกของผู้ปกครอง
<a href="page.html" target="_blank">foo</a>
ทำงานได้ 100%
window.open('http://www.google.com/','_newtab' + Date.now());
หากคุณต้องการคุณสามารถใช้วิธีนี้ซึ่งค่อนข้างแฮ็ค แต่จะเสนอฟังก์ชันที่ต้องการ:
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()
สิ่งนี้อาจใช้งานได้หากคุณสามารถเรียกไฟล์แบตช์ได้ (ฉันใช้ php กับ XP sp2 และ IE8 ... คุณสามารถลอง IE7 ได้เลย) ใช้สิ่งต่อไปนี้ (หรือคล้ายกัน) ในไฟล์. bat ของคุณเพื่อเปิด Windows: เริ่ม "" C: \ Progra ~ 1 \ Intern ~ 1 \ iexplore "http://www.site.com" ไม่มีช่องว่างระหว่างเครื่องหมายอัญประกาศและ C: \ Progr ... ฯลฯ ในบางจุดสิ่งนี้อาจเริ่มเปิดหน้าต่างใหม่ (เช่น target = "_ blank") แทนที่จะเป็นแท็บใหม่ แต่ทำงานได้ถึงจุดหนึ่ง ไม่ได้รับการทดสอบอย่างกว้างขวาง หากต้องการใช้สิ่งนี้ในไฟล์แบตช์ปกติ (CMD.exe) คุณอาจต้องเปิดหน้าต่างไว้แล้ว เพียงแค่แบ่งปันบางสิ่งที่ฉันพบเจอ แก้ไขเพื่อความกระจ่าง
<a href="http://www.google.com/" target="_self">New Tab Example</a>
ทำงานใน IE7
ความนับถือ,
Glenn