Próbuję „zmusić” przeglądarkę Safari lub IE7 do otwarcia nowej strony przy użyciu nowej karty .
Programowo mam na myśli coś takiego:
window.open('page.html','newtaborsomething');
Próbuję „zmusić” przeglądarkę Safari lub IE7 do otwarcia nowej strony przy użyciu nowej karty .
Programowo mam na myśli coś takiego:
window.open('page.html','newtaborsomething');
Odpowiedzi:
Nie możesz tego bezpośrednio kontrolować, ponieważ jest to opcja kontrolowana przez użytkowników Internet Explorera.
Otwieranie stron za pomocą Window.open z inną nazwą okna otworzy się w nowym oknie przeglądarki, takim jak wyskakujące okienko, LUB otworzy się w nowej karcie, jeśli użytkownik tak skonfigurował przeglądarkę.
Możesz, w Firefoksie to działa, dodać atrybut target = "_ newtab" do zakotwiczenia, aby wymusić otwarcie nowej karty.
<a href="some url" target="_newtab">content of the anchor</a>
W javascript możesz użyć
window.open('page.html','_newtab');
Powiedziałem to, częściowo zgadzam się z Samem. Nie należy zmuszać użytkownika do otwierania nowych stron lub nowej karty bez pokazania mu wskazówki, co się stanie, zanim kliknie łącze.
Daj mi znać, czy działa również w innej przeglądarce (nie mam w tej chwili możliwości wypróbowania tego w innej przeglądarce niż Firefox).
Edycja: dodano odniesienie do ie7 Może ten link może być przydatny
http://social.msdn.microsoft.com/forums/en-US/ieextensiondevelopment/thread/951b04e4-db0d-4789-ac51-82599dc60405/
Ci z was, którzy próbują wykorzystać następujące elementy:
window.open('page.html', '_newtab');
powinien naprawdę spojrzeć na metodę window.open.
Wszystko, co robisz, to mówienie przeglądarce, aby otworzyła nowe okno O NAZWIE „_newtab” i załadowała do niego page.html. Każda nowa strona, którą załadujesz, zostanie załadowana do tego okna. Jeśli jednak użytkownik ma ustawioną przeglądarkę, aby otwierać nowe strony w nowych kartach zamiast w nowych oknach, otworzy kartę. Niezależnie od tego używa tej samej nazwy dla okna lub karty.
Jeśli chcesz, aby różne strony otwierały się w różnych oknach lub kartach, musisz zmienić NAZWĘ nowego okna / karty na inną, na przykład:
window.open('page2.html', '_newtab2');
Oczywiście nazwa nowego okna / karty może być dowolną nazwą, taką jak strona1, strona2, strona3 itd. Zamiast _newtab2.
To od użytkownika zależy, czy chce używać nowych kart, czy nowych okien, modyfikowanie tego zachowania nie jest zadaniem programisty. Myślę, że nie możesz tego zrobić.
Moje wkurzenie - nienawidzę, gdy strony zmuszają mnie do otwierania w nowym oknie / karcie - jestem w stanie samodzielnie podjąć taką decyzję. Zwłaszcza gdy robią to w javascript - to naprawdę nie jest pomocne.
Czy już próbowałeś
var open_link = window.open('','_blank');
open_link.location="somepage.html";
Dowiedziałem się w Chrome,
window.open('page.html','_newtab')
zadziała tylko raz.
Możesz użyć:
window.open(ct.getNewHref(),'_newtab' + Math.floor(Math.random()*999999));
Aby otworzyć wiele nowych kart.
Kod, którego używam z jQuery:
$("a.btn_external").click(function() {
url_to_open = $(this).attr("href");
window.open(url_to_open, '_blank');
return false;
});
Jest to przydatne do rozróżnienia między zdarzeniami kliknięcia rodzica u dziecka. Używając tej metody, nie wyzwalasz zdarzenia kliknięcia rodzica.
<a href="page.html" target="_blank">foo</a>
To działa w 100%
window.open('http://www.google.com/','_newtab' + Date.now());
Jeśli chcesz, możesz użyć tej metody, która jest nieco hackerska, ale oferuje pożądaną funkcjonalność:
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()
Może to zadziałać, jeśli możesz wywołać plik wsadowy (używam php z XP sp2 i IE8 ... możesz spróbować IE7, nie wiem). Aby otworzyć system Windows, użyj następującego (lub podobnego) pliku .bat: Uruchom "" C: \ Progra ~ 1 \ Intern ~ 1 \ iexplore "http://www.site.com". Nie ma spacji między cudzysłowem a C: \ Progr ... itd. W pewnym momencie może to spowodować otwarcie nowych okien (tj. Target = "_ blank") zamiast nowych zakładek, ale działa do pewnego momentu; nie były szeroko testowane. Aby użyć tego w zwykłym pliku wsadowym (CMD.exe), prawdopodobnie musisz mieć już otwarte okno. Dzielę się czymś, na co się natknąłem. ZMIENIONO w celu wyjaśnienia.
<a href="http://www.google.com/" target="_self">New Tab Example</a>
Działa w IE7.
Pozdrowienia,
Glenn