मेरे पास एक चयन बॉक्स है जो window.open(url)
किसी आइटम के चयन के समय कॉल करता है। फ़ायरफ़ॉक्स पेज को डिफ़ॉल्ट रूप से एक नए टैब में खोलेगा। हालाँकि, मैं चाहूंगा कि पृष्ठ एक नई विंडो में खुले, न कि एक नया टैब।
मैं यह कैसे हासिल कर सकता हूं?
मेरे पास एक चयन बॉक्स है जो window.open(url)
किसी आइटम के चयन के समय कॉल करता है। फ़ायरफ़ॉक्स पेज को डिफ़ॉल्ट रूप से एक नए टैब में खोलेगा। हालाँकि, मैं चाहूंगा कि पृष्ठ एक नई विंडो में खुले, न कि एक नया टैब।
मैं यह कैसे हासिल कर सकता हूं?
जवाबों:
खिड़की को चौड़ाई / ऊंचाई के साथ एक 'चश्मा' पैरामीटर दें। सभी संभावित विकल्पों के लिए यहां देखें ।
window.open(url, windowName, "height=200,width=200");
जब आप एक चौड़ाई / ऊँचाई निर्दिष्ट करते हैं, तो यह एक टैब के बजाय एक नई विंडो में खुल जाएगा।
आपको ऊंचाई का उपयोग करने की आवश्यकता नहीं है, बस सुनिश्चित करें कि आप उपयोग करते हैं _blank
, इसके बिना, यह एक नए टैब में खुलता है।
एक खाली खिड़की के लिए:
window.open('', '_blank', 'toolbar=0,location=0,menubar=0');
एक विशिष्ट URL के लिए:
window.open('http://www.google.com', '_blank', 'toolbar=0,location=0,menubar=0');
location=0
आवश्यक है जब जेएस को एक बटन या एंकर तत्व से लागू किया जाता है।
location=0
मापदंडों में जोड़ रहा है। मैं _blank
लक्ष्य का उपयोग करने के बजाय विंडो का नामकरण करने का भी सुझाव दूंगा , ताकि उपयोगकर्ता द्वारा पॉपअप खोलने वाले तत्व को कई बार क्लिक करने पर उसी विंडो का फिर से उपयोग किया जाए और साथ focus()
ही साथ पहले से ही खुले पॉपअप पर ध्यान केंद्रित हो जाए:window.open('http://stackoverflow.com', 'Stack_Overflow','location=0').focus();
मैं गलत हो सकता हूं, लेकिन जो मैं समझता हूं, यह उपयोगकर्ता की ब्राउज़र वरीयताओं द्वारा नियंत्रित है, और मुझे विश्वास नहीं है कि यह ओवरराइड हो सकता है।
प्रयत्न:
window.open("", [window name], "height=XXX,width=XXX,modal=yes,alwaysRaised=yes");
मेरे पास कुछ कोड हैं जो आपका कहना है, लेकिन इसमें बहुत सारे पैरामीटर हैं। मुझे लगता है कि ये नंगे न्यूनतम हैं, मुझे बताएं कि क्या यह काम नहीं करता है, मैं बाकी पोस्ट करूंगा।
ठीक है, बहुत परीक्षण करने के बाद, यहाँ मेरा निष्कर्ष है:
जब आप प्रदर्शन करते हैं:
window.open('www.yourdomain.tld','_blank');
window.open('www.yourdomain.tld','myWindow');
या जो भी आप गंतव्य क्षेत्र में डालते हैं, यह कुछ भी नहीं बदलेगा: नया पृष्ठ एक नए टैब में खोला जाएगा (इसलिए उपयोगकर्ता वरीयता पर निर्भर करें)
यदि आप चाहते हैं कि पृष्ठ एक नई "वास्तविक" विंडो में खोला जाए, तो आपको अतिरिक्त पैरामीटर लगाना होगा। पसंद:
window.open('www.yourdomain.tld', 'mywindow','location=1,status=1,scrollbars=1, resizable=1, directories=1, toolbar=1, titlebar=1');
परीक्षण करने के बाद, यह आपके द्वारा उपयोग किए जाने वाले अतिरिक्त पैरामीटर लगता है, न ही वास्तव में कोई फर्क नहीं पड़ता: यह वह तथ्य नहीं है जिसे आपने "इस पैरामीटर" या "इस अन्य एक" को रखा है जो नए "वास्तविक विंडो" का निर्माण करते हैं, लेकिन तथ्य यह है कि नया पैरामीटर है )।
लेकिन कुछ उलझन में है और बहुत से गलत उत्तर बता सकता है:
इस:
win1 = window.open('myurl1', 'ID_WIN');
win2 = window.open('myurl2', 'ID_WIN', 'location=1,status=1,scrollbars=1');
और इस:
win2 = window.open('myurl2', 'ID_WIN', 'location=1,status=1,scrollbars=1');
win1 = window.open('myurl1', 'ID_WIN');
एक ही परिणाम नहीं देगा।
पहले मामले में, जैसा कि आप पहले अतिरिक्त पैरामीटर के बिना एक पृष्ठ खोलते हैं , यह एक नए टैब में खुलेगा । और इस स्थिति में, इस टैब में दूसरी कॉल भी खोली जाएगी गए नाम के कारण ।
दूसरे मामले में, जैसा कि आपका पहला कॉल अतिरिक्त पैरामीटर के साथ किया गया है, पृष्ठ एक नई " वास्तविक विंडो " में खोला जाएगा । और उस स्थिति में, भले ही दूसरा कॉल अतिरिक्त पैरामीटर के बिना किया जाता है, यह इस नई " वास्तविक विंडो में भी खोला जाएगा " ... लेकिन अन्य टैब!
इसका मतलब यह है कि पहली कॉल महत्वपूर्ण है क्योंकि यह निर्णय लिया गया है कि पेज को कहां रखा जाए।
आप की जरूरत नहीं होनी चाहिए उपयोगकर्ता को जो भी प्राथमिकताएं चाहिए, उन्हें अनुमति दें।
फ़ायरफ़ॉक्स करता है कि डिफ़ॉल्ट रूप से क्योंकि एक नई विंडो में एक पेज खोलना कष्टप्रद है और एक पेज को कभी भी ऐसा करने की अनुमति नहीं दी जानी चाहिए यदि ऐसा नहीं है जो उपयोगकर्ता द्वारा वांछित है। (यदि आप इसे इस तरह सेट करते हैं तो फ़ायरफ़ॉक्स आपको एक नई विंडो में टैब खोलने की अनुमति देता है)।
आप निम्नलिखित समारोह की कोशिश कर सकते हैं:
<script type="text/javascript">
function open(url)
{
var popup = window.open(url, "_blank", "width=200, height=200") ;
popup.location = URL;
}
</script>
निष्पादन के लिए HTML कोड:
<a href="#" onclick="open('http://www.google.com')">google search</a>
popup.location = URL;
? window.open()
कॉल उचित यूआरएल के लिए इसे खोलने चाहिए, और अपने कोड के उदाहरण में, URL
परिभाषित नहीं है तो यह प्रयोगात्मक (और नहीं व्यापक रूप से समर्थन) में वापस आने का जा रहा है यूआरएल वस्तु । इसके लिए उपयोग करते समय यह बहस का मुद्दा है, मैं उत्सुक हूं कि इसके उपयोग के लिए प्रेरणाएं क्या हैं?
कुंजी पैरामीटर है:
यदि आप प्रदान पैरामीटर [ऊंचाई = "", चौड़ाई = ""], तो यह नई विंडो में खुलेगा।
यदि आप प्रदान नहीं करते हैं पैरामीटर , तो यह नए टैब में खुलेगा।
क्रोम और फ़ायरफ़ॉक्स में परीक्षण किया गया
दिलचस्प है, मैंने पाया कि यदि आप एक खाली में गुजरते हैं window.open की तीसरी विशेषता के लिए स्ट्रिंग (एक अशक्त स्ट्रिंग, या गुणों की सूची के विपरीत) में पास होते हैं, तो यह क्रोम, फ़ायरफ़ॉक्स और IE के लिए एक नए टैब में खुलेगा। यदि अनुपस्थित रहे, तो व्यवहार अलग था।
तो, यह मेरी नई कॉल है:
window.open(url, windowName, '');
उस विधि का प्रयास करें .....
function popitup(url) {
//alert(url);
newwindow=window.open("http://www.zeeshanakhter.com","_blank","toolbar=yes,scrollbars=yes, resizable=yes, top=500, left=500, width=400, height=400");
newwindow.moveTo(350,150);
if (window.focus)
{
newwindow.focus()
}
return false;
}
मेरे लिए समाधान तो होना ही था
"location=0"
3 पैरामीटर में। नवीनतम एफएफ / क्रोम और IE11 के पुराने संस्करण पर परीक्षण किया गया
पूर्ण विधि कॉल I का उपयोग नीचे है (जैसा कि मुझे एक चर चौड़ाई का उपयोग करना पसंद है):
window.open(url, "window" + id, 'toolbar=0,location=0,scrollbars=1,statusbar=1,menubar=0,resizable=1,width=' + width + ',height=800,left=100,top=50');
मैंने सिर्फ IE (11) और क्रोम (54.0.2794.1 कैनरी सिज़नस) के साथ यह कोशिश की:
window.open(url, "_blank", "x=y")
... और यह एक नई विंडो में खुल गया।
जिसका अर्थ है कि क्लिंट पाच ने इसे सही कहा था जब उन्होंने कहा था कि किसी भी एक पैरामीटर को प्रदान करने से नई विंडो खुल जाएगी।
- और जाहिर है यह एक वैध पैरामीटर नहीं है!
(YMMV - जैसा कि मैंने कहा, मैंने केवल दो स्थानों पर इसका परीक्षण किया है ... और अगले अपग्रेड परिणामों को अमान्य कर सकता है, किसी भी तरह से)
ईटीए: मैंने अभी देखा, हालांकि - आईई में, खिड़की की कोई सजावट नहीं है।
यहाँ उत्तर दिया । लेकिन संदर्भ के लिए इसे फिर से पोस्ट करना।
window.open()
यदि यह वास्तविक क्लिक ईवेंट पर नहीं हो रहा है तो नए टैब में नहीं खुलेगा। उदाहरण में दिए गए URL को वास्तविक क्लिक ईवेंट पर खोला जा रहा है। यह काम करेगा बशर्ते उपयोगकर्ता के पास ब्राउज़र में उपयुक्त सेटिंग्स हों।
<a class="link">Link</a>
<script type="text/javascript">
$("a.link").on("click",function(){
window.open('www.yourdomain.com','_blank');
});
</script>
इसी तरह, यदि आप क्लिक फ़ंक्शन के भीतर एक अजाक्स कॉल करने की कोशिश कर रहे हैं और सफलता पर एक खिड़की खोलना चाहते हैं, तो सुनिश्चित करें कि आप async : false
विकल्प सेट के साथ अजाक्स कॉल कर रहे हैं ।
मुझे लगता है कि इसकी html लक्ष्य गुण समस्या नहीं है, लेकिन आपने "फ़ायरफ़ॉक्स के अंतर्गत" टैब "टैब" विकल्प में "विकल्प के बजाय एक नई टैब में" खुली एनडब्ल्यू खिड़कियां अनियंत्रित की हैं। इसे जांचें और पुन: प्रयास करें।
मेरा भी यही प्रश्न था, लेकिन इसका अपेक्षाकृत सरल समाधान मिला।
जावास्क्रिप्ट में मैं यह window.opener !=null;
निर्धारित करने के लिए जाँच कर रहा था कि खिड़की पॉप अप है या नहीं। यदि आप कुछ समान पहचान कोड का उपयोग कर रहे हैं, तो यह निर्धारित करने के लिए कि आप जिस साइट पर जा रहे हैं, वह पॉप अप है, आप आसानी से "इसे बंद कर सकते हैं " जब आप नई विंडो जावास्क्रिप्ट का उपयोग करके "नई" विंडो खोलना चाहते हैं ।
बस इसे अपने पृष्ठ के शीर्ष पर रखें जिसे आप हमेशा एक "नई" विंडो बनाना चाहते हैं।
<script type="text/javascript">
window.opener=null;
</script>
मैं अपनी साइट के लॉग इन पेज पर इसका उपयोग करता हूं ताकि उपयोगकर्ता मेरी साइट पर नेविगेट करने के लिए पॉप अप विंडो का उपयोग करने पर पॉप अप व्यवहार न करें।
आप एक साधारण रीडायरेक्ट पेज भी बना सकते हैं जो ऐसा करता है और फिर आपके द्वारा दिए गए URL पर जाता है। कुछ इस तरह,
माता-पिता पृष्ठ पर जावास्क्रिप्ट:
window.open("MyRedirect.html?URL="+URL, "_blank");
और फिर यहाँ से थोड़ी जावास्क्रिप्ट का उपयोग करके आप URL प्राप्त कर सकते हैं और इसे रीडायरेक्ट कर सकते हैं।
रीडायरेक्ट पृष्ठ पर जावास्क्रिप्ट:
<script type="text/javascript">
window.opener=null;
function getSearchParameters() {
var prmstr = window.location.search.substr(1);
return prmstr != null && prmstr != "" ? transformToAssocArray(prmstr) : {};
}
function transformToAssocArray( prmstr ) {
var params = {};
var prmarr = prmstr.split("&");
for ( var i = 0; i < prmarr.length; i++) {
var tmparr = prmarr[i].split("=");
params[tmparr[0]] = tmparr[1];
}
return params;
}
var params = getSearchParameters();
window.location = params.URL;
</script>