window.open
Tüm Tarayıcılarda Yeni Bir Sekmede Açılır Pencere Güvenilir Bir Şekilde Açılamıyor
Farklı tarayıcılar window.open
, özellikle kullanıcının tarayıcı tercihlerine göre davranışını farklı şekillerde uygular . window.open
Bir kullanıcının tarayıcı tercihlerini farklı şekilde ele almaları nedeniyle , aynı davranışın tüm Internet Explorer, Firefox ve Chrome'da doğru olmasını bekleyemezsiniz .
Örneğin, Internet Explorer (11) kullanıcıları pop-up'ları yeni bir pencerede veya yeni bir sekmede açmayı seçebilir, Internet Explorer 11 kullanıcılarını Quentin'in cevabındawindow.open
belirtildiği gibi pop-up'ları belirli bir şekilde açmaya zorlayamazsınız .
Firefox (29) kullanıcılarına gelince window.open(url, '_blank')
, kullanımı tarayıcılarının sekme tercihlerine bağlıdır, ancak yine de bir genişlik ve yükseklik belirterek pop-up'ları yeni bir pencerede açmaya zorlayabilirsiniz (aşağıdaki "Chrome Nedir?" Bölümüne bakın).
gösteri
Tarayıcınızın ayarlarına gidin ve açılır pencereleri yeni bir pencerede açacak şekilde yapılandırın.
Internet Explorer (11)
Test Sayfası
Internet Explorer'ı (11) açılır pencereleri yukarıda gösterildiği gibi yeni bir pencerede açacak şekilde ayarladıktan sonra, test etmek için aşağıdaki test sayfasını kullanın window.open
:
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
</head>
<body>
<button onclick="window.open('https://stackoverflow.com/q/4907843/456814');">
<code>window.open(url)</code>
</button>
<button onclick="window.open('https://stackoverflow.com/q/4907843/456814', '_blank');">
<code>window.open(url, '_blank')</code>
</button>
</body>
</html>
Açılır pencerelerin yeni bir sekmede değil, yeni bir pencerede açıldığını gözlemleyin .
Ayrıca, yukarıdaki snippet'leri Firefox'ta (29) sekme tercihi yeni pencerelere ayarlanmış olarak test edebilir ve aynı sonuçları görebilirsiniz.
Chrome Nedir? window.open
Internet Explorer (11) ve Firefox'tan (29) farklı olarak uygular .
% 100 emin değilim, ancak 34.0.1847.131 m
kullanıcının pop-up'ları yeni bir pencerede veya yeni bir sekmede (Firefox ve Internet Explorer gibi) açıp açmamayı seçmek için kullanabileceği ayarların Chrome (sürüm ) olmadığı anlaşılıyor Sahip olmak). Chrome belgelerini pop-up'ları yönetmek için kontrol ettim , ancak bu tür bir şeyden bahsetmedi.
Ayrıca, bir kez daha, farklı tarayıcılar window.open
farklı davranışlar sergiliyor gibi görünüyor . Chrome ve Firefox'ta, bir kullanıcı Firefox'u (29) yeni bir sekmede yeni pencereler açmaya ayarlamış olsa bile ( genişlik ve yükseklik belirtilmesi bir açılır pencere zorlar ) ( JavaScript'in yanıtlarının sekmede değil yeni bir pencerede açıldığı gibi ) :
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
</head>
<body>
<button onclick="window.open('https://stackoverflow.com/q/4907843/456814', 'test', 'width=400, height=400');">
<code>window.open(url)</code>
</button>
</body>
</html>
Ancak, kullanıcılar tarayıcı tercihleri olarak sekmeler ayarlarsa, genişlik ve yükseklik belirtmemek bile yeni bir pencere açılır penceresini zorlamayacaksa , yukarıdaki aynı kod snippet'i Internet Explorer 11'de her zaman yeni bir sekme açar.
Bu nedenle window.open
Chrome'daki davranışı, bir onclick
etkinlikte kullanıldığında açılır pencereleri yeni bir sekmede açmak, tarayıcı konsolundan kullanıldığında yeni pencerelerde açmak ( diğer kişiler tarafından belirtildiği gibi ) ve genişlik ve yükseklik ile belirtilir.
özet
Farklı tarayıcılar window.open
, kullanıcıların tarayıcı tercihlerine göre farklı davranışlar uygular . window.open
Bir kullanıcının tarayıcı tercihlerini farklı şekilde ele almaları nedeniyle , aynı davranışın tüm Internet Explorer, Firefox ve Chrome'da doğru olmasını bekleyemezsiniz .
İlave Okuma