Modern tarayıcılar window.focus
varolan pencere sizi izin vermez gibi görünüyor. Ya da en azından, bu pencere odağını vermez. (IE9 aslında sekmeyi göz kırpacak, ancak diğer tarayıcıların çoğu sadece onu yükleyecek, ancak kullanıcının yeni pencereye dikkat etmesi gerektiğine dair hiçbir belirti vermeyecektir.)
Bu nedenle, kendini gösteren bir çözüm önce pencereyi kapatmaktır. ve sonra hemen yeniden açın. Örneğin, declare the following function için:
window.openOrFocus = function(url, name) {
if (!window.popups)
window.popups = {};
if (window.popups[name])
window.popups[name].close();
window.popups[name] = window.open(url, name);
}
Şimdi, bu gibi HTML yazabilirsiniz:
<a href="javascript:void(0);" onclick="openOrFocus('http://jsfiddle.net/k3t6x/2/', 'window1')">Window 1</a><br />
<a href="javascript:void(0);" onclick="openOrFocus('http://jsfiddle.net/KR6w3/1/', 'window2')">Window 2</a><br />
ilk pencereyi kapatır bu yana, güvenilir yeni oluşturulan alt pencere odağı verir.
Bu çözüm aynı zamanda window.popups
ad kullanır, bu nedenle popups
adında bir işlevi var veya başka bir şekilde onunla çarpıştı varsa javascript numunede bunun kullanımlarını yeniden adlandırın.
Caveat: Bu bir post-back sonra çalışmaz. Bunun nedeni, geçerli sayfadan ayrıldığınızda, artık çocuk pencerelerinin sahibi değildir. Bu nedenle, artık onları kapatamaz. Bununla birlikte, yalnızca target
özniteliğinin kullanılmasının olağan (odaklanmayan) davranışına indirgenir.
İncelenen: Firefox 4, Krom 11, IE 9
JsFiddle Demosu:
http://jsfiddle.net/aqxBy/7/
Bu nedenle pencere yükleniyor, gösterilmiyor mu? Doğru sayfa yükleniyor mu? Her tarayıcıda aynı davranışı var mı? Sanırım bu bir pencere müdürü endişesi, javascript'ten yapabileceğiniz bir şey değil, ama şimdilik oynadığım için takip ediyorum. – jcolebrand