window.open
सभी ब्राउज़रों में एक नया टैब में विश्वसनीय रूप से पॉपअप नहीं खोल सकते
विभिन्न ब्राउज़र window.open
अलग-अलग तरीकों से व्यवहार को लागू करते हैं, विशेष रूप से उपयोगकर्ता की ब्राउज़र वरीयताओं के संबंध में। आप window.open
इंटरनेट एक्सप्लोरर, फ़ायरफ़ॉक्स, और क्रोम के सभी के लिए समान व्यवहार की उम्मीद नहीं कर सकते हैं , क्योंकि विभिन्न तरीकों से वे उपयोगकर्ता की ब्राउज़र वरीयताओं को संभालते हैं।
उदाहरण के लिए, इंटरनेट एक्सप्लोरर (11) उपयोगकर्ता एक नई विंडो या नए टैब में पॉपअप खोलने का विकल्प चुन सकते हैं, आप इंटरनेट एक्सप्लोरर 11 उपयोगकर्ताओं को क्वेंटिन के उत्तरwindow.open
में बताए गए तरीके से पॉपअप खोलने के लिए बाध्य नहीं कर सकते ।
फ़ायरफ़ॉक्स (29) उपयोगकर्ताओं के लिए, का उपयोग window.open(url, '_blank')
करना उनके ब्राउज़र की टैब वरीयताओं पर निर्भर करता है, हालांकि आप अभी भी उन्हें एक चौड़ाई और ऊंचाई निर्दिष्ट करके पॉपअप खोलने के लिए मजबूर कर सकते हैं (नीचे "क्रोम के बारे में?" अनुभाग देखें)।
प्रदर्शन
अपने ब्राउज़र की सेटिंग में जाएं और पॉपअप को एक नई विंडो में खोलने के लिए इसे कॉन्फ़िगर करें।
इंटरनेट एक्सप्लोरर (11)
टेस्ट पेज
ऊपर बताए अनुसार एक नई विंडो में पॉपअप खोलने के लिए इंटरनेट एक्सप्लोरर (11) स्थापित करने के बाद, परीक्षण करने के लिए निम्नलिखित परीक्षण पृष्ठ का उपयोग करें 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>
ध्यान रखें कि पॉपअप एक नई विंडो में खोला जाता है, न कि एक नया टैब।
आप फ़ायरफ़ॉक्स (29) में ऊपर की ओर उन स्निपेट्स का परीक्षण भी कर सकते हैं, जिनकी टैब वरीयताएँ नई विंडो पर सेट हैं, और वही परिणाम देखें।
क्रोम के बारे में क्या? यह window.open
इंटरनेट एक्सप्लोरर (11) और फ़ायरफ़ॉक्स (29) से अलग-अलग लागू होता है ।
मुझे 100% यकीन नहीं है, लेकिन ऐसा लग रहा है कि क्रोम (संस्करण 34.0.1847.131 m
) में ऐसी कोई सेटिंग नहीं है जिसे उपयोगकर्ता किसी नई विंडो या नए टैब (जैसे फ़ायरफ़ॉक्स और इंटरनेट एक्सप्लोरर) में पॉपअप खोलने के लिए चुन सकता है या नहीं ) है। मैंने पॉप-अप के प्रबंधन के लिए Chrome दस्तावेज़ की जाँच की , लेकिन इसमें उस चीज़ के बारे में कुछ भी उल्लेख नहीं किया गया था।
इसके अलावा, एक बार फिर, विभिन्न ब्राउज़र अलग-अलग व्यवहार को लागू करते हैं window.open
। क्रोम और फ़ायरफ़ॉक्स में, एक चौड़ाई और ऊँचाई निर्दिष्ट करने से एक पॉपअप मजबूर हो जाएगा, तब भी जब उपयोगकर्ता ने फ़ायरफ़ॉक्स (29) को एक नए टैब में नई विंडो खोलने के लिए सेट किया है (जैसा कि जावास्क्रिप्ट के उत्तर में एक नई विंडो में खुला है, टैब नहीं ) :
<!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>
हालांकि, उपरोक्त कोड स्निपेट हमेशा इंटरनेट एक्सप्लोरर 11 में एक नया टैब खोलेगा, यदि उपयोगकर्ता टैब को अपनी ब्राउज़र प्राथमिकता के रूप में सेट करते हैं, तो चौड़ाई और ऊंचाई निर्दिष्ट नहीं करना भी उनके लिए एक नई विंडो पॉपअप को मजबूर करेगा।
तो window.open
क्रोम का व्यवहार एक onclick
घटना में उपयोग किए जाने पर नए टैब में पॉपअप खोलने के लिए , ब्राउज़र कंसोल से उपयोग किए जाने पर नई विंडो में खोलने के लिए ( जैसा कि अन्य लोगों द्वारा नोट किया गया है ) और उन्हें नई विंडो में खोलने के लिए प्रतीत होता है चौड़ाई और ऊंचाई के साथ निर्दिष्ट।
सारांश
अलग-अलग ब्राउज़र window.open
उपयोगकर्ताओं की ब्राउज़र वरीयताओं के संबंध में अलग-अलग व्यवहार को लागू करते हैं। आप window.open
इंटरनेट एक्सप्लोरर, फ़ायरफ़ॉक्स, और क्रोम के सभी के लिए समान व्यवहार की उम्मीद नहीं कर सकते हैं , क्योंकि विभिन्न तरीकों से वे उपयोगकर्ता की ब्राउज़र वरीयताओं को संभालते हैं।
अतिरिक्त पढ़ना