मैं "क्या आप इस विंडो को बंद करना चाहते हैं" प्रॉम्प्ट प्राप्त किए बिना ब्राउज़र विंडो बंद कर सकते हैं?


86

मैं उस विंडो प्रॉम्प्ट को बंद करने के लिए क्या आप प्राप्त किए बिना ब्राउज़र विंडो बंद कर सकते हैं ?

प्रॉम्प्ट तब होता है जब मैं window.close();फ़ंक्शन का उपयोग करता हूं ।


22
सबसे आसान:window.open('','_self').close()
markasoftware

यदि आप उपयोगकर्ता विंडो को बंद करने में अक्षम करते हैं, तो फ़ायरफ़ॉक्स में यह सब मूट हो सकता है। kb.mozillazine.org/…
ब्रायन

3
जब तक आप स्वयं विंडो नहीं बनाते, आपको नहीं करना चाहिए।
रॉबर्ट हार्वे

अब संभव नहीं है। stackoverflow.com/a/19768082/391101
कटाई 316

जवाबों:


85
window.open('', '_self', ''); window.close();

यह मेरे लिए काम करता है।


IE11, Safary 5.1.7 के लिए काम करता है, लेकिन FF और Chrome में काम नहीं करता है।
nikolai.serdiuk

फ़ायरफ़ॉक्स 38.0.5 और क्रोम 43 में काम करना
justanotherprogrammer

क्या होगा अगर खिड़की का उपयोग करके खोला जाता है showModalDialog? यह IE10 पर काम नहीं करता है
मार्जन

यकीन नहीं है कि यह सभी ब्राउज़रों में काम करता है, लेकिन यह IE11 में काम करता है !!! वर्तमान में हमें कौन सा ब्राउज़र बनाना है। इस जवाब के लिए धन्यवाद, आपने मुझे बहुत परेशानी से बचाया।
क्रेज़ी पेस्ट

IE 11, Chrome 76.0.3809, Firefox 69.0 में ठीक काम करता है
राहुल महादिक

57

मेरे दोस्त ... एक तरीका है लेकिन "हैक" इसका वर्णन करना शुरू नहीं करता है। आपको IE 6 और 7 में मूल रूप से बग का दोहन करना होगा।

हर बार काम करता है!

कॉल करने के बजाय window.close(), दूसरे पेज पर रीडायरेक्ट करें।

उद्घाटन पृष्ठ:

alert("No whammies!");
window.open("closer.htm", '_self');

दूसरे पेज पर रीडायरेक्ट करें। यह IE को इस पृष्ठ पर ब्राउज़र को बंद करने में मूर्ख बनाता है।

समापन पृष्ठ:

<script type="text/javascript">
    window.close();
</script>

बहुत बढ़िया हुह ?!


1
मुझे पता है कि यह पहले से ही 2 साल है। लेकिन यह आश्चर्यजनक है। IE 8 और फ़ायरफ़ॉक्स 15 पर सूअर का बच्चा
सूसी

9
ऐसा लगता है कि Microsoft ने IE10 में इस बग को ठीक कर दिया है। किसी को भी पता है कि हम अभी भी IE10 में इसे कैसे प्राप्त कर सकते हैं?
अभि रामपाल

दोनों self.close () और window.close () मेरी तरफ IE के लिए काम नहीं करते हैं। हालाँकि, क्रोम, FF और सफारी ठीक हैं
NoName

57

स्क्रिप्ट कर रहे हैं अनुमति नहीं एक खिड़की है कि एक उपयोगकर्ता ने खुली बंद हुआ। इसे सुरक्षा जोखिम माना जाता है। हालांकि यह किसी भी मानक में नहीं है, सभी ब्राउज़र विक्रेता इसका पालन करते हैं ( मोज़िला डॉक्स ) । यदि यह कुछ ब्राउज़रों में होता है, तो यह एक सुरक्षा बग है जो (आदर्श रूप में) बहुत तेज़ी से पैच हो जाता है।

इस प्रश्न के उत्तरों में से कोई भी हैक किसी भी लंबे समय तक काम नहीं करता है, और यदि कोई अन्य गंदे हैक के साथ आएगा, तो अंततः यह काम करना बंद कर देगा।

मेरा सुझाव है कि आप इससे लड़ने वाली ऊर्जा को बर्बाद न करें और उस विधि को अपनाएं जो ब्राउज़र आपको इतनी मदद करता है - उपयोगकर्ता को उनके पृष्ठ को क्रैश करने से पहले पूछें


5
या, और भी सरल: खिड़की को बिल्कुल भी बंद न करें। यदि आप कर रहे हैं, तो उपयोगकर्ता को अपने होम पेज पर, या किसी अन्य प्रकार के केंद्रीय स्थान पर भेजें।
डस्कवफ-एक्टिव-

2
@duskwuff, हम इन ब्राउज़रों के खिलाफ स्वचालित परीक्षण चला रहे हैं। उन्हें बंद करने की जरूरत है ।
ouflak

2
@ouflak निश्चित रूप से आपके परीक्षण ढांचे में खिड़कियों में हेरफेर करने का कोई तरीका है।
डस्कवफ-एक्टिव-

1
@duskwuff तीसरे पक्ष के पुस्तकालयों के बारे में क्या है जो चारों ओर बिछाने वाली खिड़कियां छोड़ते हैं? आप निश्चित रूप से यह सुझाव नहीं दे सकते हैं कि मैं सिर्फ उपयोगकर्ता के लिए उस गड़बड़ को छोड़ देता हूं या उन्हें होम पेज के एक (डुप्लिकेट) दृश्य पर पुनर्निर्देशित कर देता हूं।
कार्ट

1
क्या आप अपने जवाब में एक फुटनोट के रूप में भी बता सकते हैं, यह सुरक्षा जोखिम क्यों है।
तोडुआ

31

यहाँ जावास्क्रिप्ट फंक्शन है जिसे मैं प्रॉम्प्ट या वार्निंग के बिना ब्राउज़र को बंद करने के लिए उपयोग करता हूं, इसे फ्लैश से भी कॉल किया जा सकता है। यह html फ़ाइल में होना चाहिए।

    function closeWindows() {
         var browserName = navigator.appName;
         var browserVer = parseInt(navigator.appVersion);
         //alert(browserName + " : "+browserVer);

         //document.getElementById("flashContent").innerHTML = "<br>&nbsp;<font face='Arial' color='blue' size='2'><b> You have been logged out of the Game. Please Close Your Browser Window.</b></font>";

         if(browserName == "Microsoft Internet Explorer"){
             var ie7 = (document.all && !window.opera && window.XMLHttpRequest) ? true : false;  
             if (ie7)
             {  
               //This method is required to close a window without any prompt for IE7 & greater versions.
               window.open('','_parent','');
               window.close();
             }
            else
             {
               //This method is required to close a window without any prompt for IE6
               this.focus();
               self.opener = this;
               self.close();
             }
        }else{  
            //For NON-IE Browsers except Firefox which doesnt support Auto Close
            try{
                this.focus();
                self.opener = this;
                self.close();
            }
            catch(e){

            }

            try{
                window.open('','_self','');
                window.close();
            }
            catch(e){

            }
        }
    }

IE 10.0.9200 पर, विंडो का उपयोग करके खोलना showModalDialog। ऑन closeWindows, यह एक नई विंडो (उसी पेज) को खोलता है जबकि पिछला एक अभी भी खुला है।
बजन

फ़ायरफ़ॉक्स पर काम नहीं किया, IE / Edge एक पुष्टि शीघ्र प्रदर्शित - यह क्रोम पर काम किया है।
दायमास

12

यह क्रोम 26, इंटरनेट एक्सप्लोरर 9 और सफारी 5.1.7 ( हेल्पर पेज के उपयोग के बिना , अला निक के जवाब) में काम करता है:

<script type="text/javascript">
    window.open('javascript:window.open("", "_self", "");window.close();', '_self');
</script>

नेस्ट window.openको IE को प्रदर्शित नहीं करना है क्या आप इस विंडो प्रॉम्प्ट को बंद करना चाहते हैं

दुर्भाग्य से विंडो को बंद करने के लिए फ़ायरफ़ॉक्स प्राप्त करना असंभव है।


IE 10 के लिए भी काम किया।
मुक्तस

11

बॉडी टैग में:

<body onload="window.open('', '_self', '');">

विंडो बंद करने के लिए:

<a href="javascript:window.close();">

सफारी 4.0.5 पर परीक्षण किया गया, मैक 3.6 के लिए एफएफ, आईई 8.0 और विंडोज 3.5 के लिए एफएफ


कार्यात्मक रूप से वही काम निक ने किया।
नौगटुर

हाँ। अगर मैं निक की पोस्ट को सही ढंग से पढ़ रहा हूं तो वह window.close को कॉल करने से पहले रीडायरेक्ट करने का सुझाव देता है। यदि आपने कोई रीडायरेक्ट उपयोग नहीं करना है तो मैंने जो पोस्ट किया है। अगर मैं निक की पोस्ट माफी को गलत बता रहा हूं।
जिमबी

7

सुरक्षा कारणों से, एक विंडो केवल जावास्क्रिप्ट में बंद की जा सकती है यदि इसे जावास्क्रिप्ट द्वारा खोला गया हो। विंडो को बंद करने के लिए, आपको _selfलक्ष्य के रूप में एक नई विंडो खोलनी होगी, जो आपकी वर्तमान विंडो को अधिलेखित कर देगी, और फिर उस एक को बंद कर देगी (जिसे आप जावास्क्रिप्ट के माध्यम से खोला गया था)।

window.open('', '_self', '');
window.close();

इसने मेरे लिए सिल्वरलाइट के साथ काम किया: HtmlPage.Window.Eval ("window.open ('', '_self', ''); window.close ();");
माइक फुच्स


6

window.open('', '_self', '').close();

यहाँ थोड़ी देर के लिए खेद है, लेकिन मुझे इसका हल मिल गया, कम से कम मेरे मामले के लिए। सफारी 11.0.3 और Google Chrome 64.0.3282.167 पर परीक्षण किया गया


5

IE में सुरक्षा एन्हांसमेंट्स के कारण, आप किसी विंडो को तब तक बंद नहीं कर सकते जब तक कि इसे स्क्रिप्ट द्वारा नहीं खोला जाता। तो इसके आस-पास का रास्ता ब्राउज़र को यह सोचने देगा कि यह पृष्ठ स्क्रिप्ट का उपयोग करके खोला गया है, और फिर विंडो बंद करने के लिए। नीचे कार्यान्वयन है।

यह कोशिश करो, यह एक आकर्षण की तरह काम करता है!
जावास्क्रिप्ट IE के बिना निकट वर्तमान खिड़की बंद कर दिया

<script type="text/javascript">
function closeWP() {
 var Browser = navigator.appName;
 var indexB = Browser.indexOf('Explorer');

 if (indexB > 0) {
    var indexV = navigator.userAgent.indexOf('MSIE') + 5;
    var Version = navigator.userAgent.substring(indexV, indexV + 1);

    if (Version >= 7) {
        window.open('', '_self', '');
        window.close();
    }
    else if (Version == 6) {
        window.opener = null;
        window.close();
    }
    else {
        window.opener = '';
        window.close();
    }

 }
else {
    window.close();
 }
}
</script>

जावास्क्रिप्ट IE के बिना करीब वर्तमान खिड़की


2

एक जावास्क्रिप्ट फ़ंक्शन बनाएँ

<script type="text/javascript">
    function closeme() {
        window.open('', '_self', '');
        window.close();
    }
</script>

अब इस कोड को लिखें और उपरोक्त जावास्क्रिप्ट फ़ंक्शन को कॉल करें

<a href="Help.aspx" target="_blank" onclick="closeme();">Help</a>

या केवल:

<a href="" onclick="closeme();">close</a>

2

यह काम करेगा:

<script type="text/javascript">
function closeWindowNoPrompt()
{
window.open('', '_parent', '');
window.close();
}
</script>

पायथन ईल के क्रोम कार्यान्वयन का उपयोग करके काम किया।
रेवलेस्कैनो


0

ब्राउज़र शिकायत कर रहा है क्योंकि आप जावास्क्रिप्ट का उपयोग कर रहे हैं एक विंडो को बंद करने के लिए जिसे जावास्क्रिप्ट के साथ नहीं खोला गया था, अर्थात window.open('foo.html');


0

सबसे अच्छा समाधान मैंने पाया है:

this.focus();
self.opener=this;
self.close();

0

निम्नलिखित कोड को ASPX में रखें।

<script language=javascript>
function CloseWindow() 
{
    window.open('', '_self', '');
    window.close();
}
</script>

बटन क्लिक घटना के पीछे कोड में निम्नलिखित कोड रखें।

string myclosescript = "<script language='javascript' type='text/javascript'>CloseWindow();</script>";

Page.ClientScript.RegisterStartupScript(GetType(), "myclosescript", myclosescript);

यदि आपके पास बंद होने से पहले कोई प्रोसेसिंग नहीं है तो आप सीधे ASPX बटन बटन टैग में निम्नलिखित कोड डाल सकते हैं।

OnClientClick="CloseWindow();"

उम्मीद है की यह मदद करेगा।


प्रश्न एक सरल जावास्क्रिप्ट समाधान के लिए पूछते हैं, ASPX से बचें।
जीशान 10

@ ज़ीशान: अपने नमक के लायक कोई भी डेवलपर देख सकता है कि कमलेशकुमार गुजराती के पोस्ट के शीर्ष पर जावास्क्रिप्ट अपनी आवश्यकता के लिए लागू किया जा सकता है। एक स्पर्श कठोर अगर आपने उसका जवाब नहीं दिया।
पॉल

0

मेरी स्थिति में निम्न कोड एक php फ़ाइल में एम्बेड किया गया था।

var PreventExitPop = true;
function ExitPop() {
  if (PreventExitPop != false) {
    return "Hold your horses! \n\nTake the time to reserve your place.Registrations might become paid or closed completely to newcomers!"
  }
}
window.onbeforeunload = ExitPop;

इसलिए मैंने कंसोल को खोला और निम्नलिखित लिखा

PreventExitPop = false

इससे समस्या हल हो गई। तो, जावास्क्रिप्ट कोड का पता लगाएं और चर (ओं) को ढूंढें और उन्हें एक उपयुक्त "मान" पर असाइन करें जो मेरे मामले में "गलत" था


-3

मैं इसे पोस्ट करने जा रहा हूं क्योंकि यह वह है जो मैं वर्तमान में अपनी साइट के लिए उपयोग कर रहा हूं और यह Google क्रोम और IE 10 दोनों में बिना किसी पॉपुलर संदेश प्राप्त किए काम करता है:

<html>
    <head>
    </head>
    <body onload="window.close();">
    </body>
</html>

मेरी साइट पर एक फ़ंक्शन है जिसे मैं सीधे एक नए पृष्ठ पर जाने के बिना सत्र के लिए चालू / बंद चर को बचाने के लिए चलाना चाहता हूं, इसलिए मैं बस एक छोटा पॉपअप वेबपेज खोलता हूं। वह वेबपेज तब onload="window.close();"फंक्शन के साथ तुरंत बंद हो जाता है ।


हां: लेकिन जैसे stackoverflow.com/a/24854246/2239406 जानकारी: आप जावास्क्रिप्ट में विंडो खोलते हैं, फिर जावास्क्रिप्ट के साथ बंद कर सकते हैं।
डेनिस चेनू

ठीक है, अगर यह काम करने वाला नहीं है, और अगर यह 'पैच' किया गया है, तो यह अभी भी मेरे पीसी पर सभी ब्राउज़रों पर बिना किसी असफलता के काम करता है। मैं बस एक समाधान प्रदान कर रहा था जो वर्तमान में मेरे लिए काम कर रहा था।
लोगन हसब्रुक

अंतर यह है: आप जेएस में विंडो खोलते हैं। यदि जेएस में खिड़की सी नहीं खुली: काम न करें।
डेनिस चेनू

नहीं, मैं खिड़की खोलने के लिए JS का उपयोग नहीं कर रहा हूँ; बल्कि मैं एक विशिष्ट url में एक छोटे पॉपअप विंडो को खोलने के लिए एक के aसाथ प्रयोग कर रहा हूं target=_blank, फिर अंत में मैं विंडो बंद करने के लिए JS का उपयोग करता हूं। इसका उद्देश्य यह है कि विशिष्ट url पृष्ठभूमि छवियों को अक्षम करने के लिए सत्र के लिए एक मान बचाता है, हालांकि यहाँ जल्द ही मैं इसे ajax के पक्ष में हटा रहा हूँ जब मैं यह पता लगाऊंगा कि ajax कैसे करें। (अभी भी रस्सियों को सीखना जारी है)
लोगान हस्ब्रुक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.