दिलचस्प पोस्ट
आईओएस 7 कस्टम बैक बटन पांडा: जब सेल की सामग्री सूचियां हैं, तो सूची में प्रत्येक तत्व के लिए एक पंक्ति बनाएं परमाणु / अस्थिर / सिंक्रनाइज़ में अंतर क्या है? jQuery के गिनती बच्चे तत्व प्रवेश 2007 वीबीए में "ओपन फाइल" संवाद कैसे दिखाया जाए? UITableView में 2 अलग-अलग कस्टम UITableViewCells हल करने में विफल: com.android.support:cardview-v7:26.0.0 एंड्रॉइड सरणी_मैप, सरणी_वॉक और सरणी_फिल्टर के बीच अंतर गूगल के सीडीएन से jQuery यूआई सीएसएस डाउनलोड एसक्यूएल सर्वर अमान्य ऑब्जेक्ट का नाम – लेकिन टेबल SSMS टेबल सूची में सूचीबद्ध हैं पायथन से एचटीएमएल फ़ाइल से पाठ निकालना कैसे python फ़ंक्शन अपने स्वयं के गुणों को एक्सेस कर सकता है? क्या सी + + और ++ के बीच में कोई अंतर है? मैं बच्चे से एक मूल वापस माता पिता के रूप में कैसे पास कर सकता हूं? सी # के लिए सीएसवी पार्सर / रीडर?

window.close और self.close क्रोम में खिड़की को बंद नहीं करते हैं

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

तो किसी को javascript:window.close() या javascript:self.close() तरह कुछ का उपयोग करके विंडो को बंद करने की वास्तविक, कार्यात्मक और सिद्ध पद्धति है, जो वास्तव में अपेक्षित होता है और जो कुछ ऐसा ठीक होता है जो प्रत्येक ब्राउज़र में ठीक नहीं होता है क्रोम आधारित है? किसी भी सुझाव की बहुत सराहना की जाएगी और मैं जावास्क्रिप्ट विशिष्ट समाधान, कुछ भी नहीं JQuery या तीसरे पक्ष के कार्यान्वयन की तलाश कर रहा हूं

अपडेट: जबकि ज्यादातर सुझाव दिए गए हैं, उनमें गंभीर सीमाएं और प्रयोज्यता संबंधी समस्याएं हैं, ताज़ा सुझाव (TamperMonkey के लिए विशिष्ट) // @grant window.close का उपयोग करते हुए स्क्रिप्ट हैडर अक्सर उस टैब पर भी चाल करेंगे जो सामान्य रूप से नहीं कर सकते बंद विधि संभाल हालांकि पूरी तरह से आदर्श नहीं है और हर मामले में सामान्यीकृत नहीं है, यह मेरे मामले में एक अच्छा समाधान है

वेब के समाधान से एकत्रित समाधान "window.close और self.close क्रोम में खिड़की को बंद नहीं करते हैं"

साधारण जावास्क्रिप्ट विंडो को बंद नहीं कर सकता- अस्वीकार्य। यह एक सुरक्षा सुविधा है, कुछ समय पहले शुरू की, विभिन्न दुर्भावनापूर्ण शोषण और annoyances को रोकने के लिए।

window.close() लिए नवीनतम कामकाजी कल्पना से :

विंडो ऑब्जेक्ट्स पर close() विधि, यदि सभी निम्न स्थितियाँ पूरी होती हैं, ब्राउज़िंग संदर्भ को बंद करें:

  • संबंधित ब्राउज़िंग संदर्भ स्क्रिप्ट बंद है
  • मौजूदा स्क्रिप्ट का ब्राउज़िंग संदर्भ ब्राउज़िंग संदर्भ से परिचित है।
  • मौजूदा स्क्रिप्ट के ब्राउज़िंग संदर्भ को ब्राउज़िंग संदर्भ नेविगेट करने की अनुमति है।

एक ब्राउज़िंग संदर्भ स्क्रिप्ट-क्लॉबेट है यदि यह एक सहायक ब्राउज़िंग प्रसंग है जो स्क्रिप्ट द्वारा बनाया गया था (उपयोगकर्ता की किसी कार्रवाई के विरोध में), या यदि वह एक ब्राउज़िंग संदर्भ है जिसका सत्र इतिहास में केवल एक दस्तावेज़ है

इसका मतलब है, एक छोटा सा अपवाद के साथ, जावास्क्रिप्ट को उस विंडो को बंद करने की अनुमति नहीं दी जानी चाहिए जो उसी जावास्क्रिप्ट द्वारा नहीं खोला गया था।

क्रोम अपवाद की अनुमति देता है – यह उपयोगकर्ताओं की कॉपी पर लागू नहीं होता है – हालांकि फ़ायरफ़ॉक्स नहीं है फ़ायरफ़ॉक्स कार्यान्वयन फ्लैट बताता है :

इस पद्धति को केवल खिड़कियों के लिए बुलाया जाने की इजाजत दी जाती है जो कि खिड़की का उपयोग करते हुए स्क्रिप्ट द्वारा खोला गया था। window.open विधि।


अगर आप Greasemonkey / Tampermonkey / usercript से विंडो का उपयोग करने का प्रयास करते हैं तो आपको ये मिलेगा:
फ़ायरफ़ॉक्स: त्रुटि संदेश, " Scripts may not close windows that were not opened by script. "
क्रोम: बस चुपचाप विफल रहता है


दीर्घकालिक समाधान:

इसके साथ सौदा करने का सबसे अच्छा तरीका है कि क्रोम एक्सटेंशन और / या फ़ायरफ़ॉक्स ऐड-ऑन के बजाय। ये वर्तमान विंडो को मज़बूती से बंद कर सकते हैं

हालांकि, चूंकि सुरक्षा जोखिम, खिड़की के द्वारा लगाए गए हैं, वे ग्रीज़म्की / ताम्प्रमोंकी स्क्रिप्ट के लिए बहुत कम हैं; Greasemonkey और Tampermonkey उचित रूप से अपने एपीआई में इस कार्यक्षमता प्रदान कर सकते हैं (अनिवार्य रूप से आप के लिए विस्तार काम पैकेजिंग)
एक सुविधा अनुरोध बनाने पर विचार करें


हैमी कामकाज:

क्रोम वर्तमान में "स्व पुनर्निर्देशन" शोषण के लिए कमजोर था तो सामान्य रूप से काम करने के लिए इस्तेमाल किए गए कोड जैसे:

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

यह छोटी गाड़ी का व्यवहार, आईएमओ है, और अब (मोटे तौर पर अप्रैल 2015 तक) ज्यादातर अवरुद्ध यह अभी भी इंजेक्ट किए गए कोड से तब भी काम करेगा जब टैब ताज़ा खुलता है और ब्राउज़िंग इतिहास में कोई पृष्ठ नहीं है। तो यह केवल परिस्थितियों के बहुत छोटे सेट में उपयोगी है

हालांकि, एक बदलाव अभी भी क्रोम पर काम करता है (v43 और v44) प्लस टैम्परमनी (v3.11 या बाद के संस्करण) । एक स्पष्ट @grant और सादे @grant उपयोग करें। बंद window.close() ईजी:

 // ==UserScript== // @name window.close demo // @include http://YOUR_SERVER.COM/YOUR_PATH/* // @grant GM_addStyle // ==/UserScript== setTimeout (window.close, 5000); 

अद्यतन के लिए zanetu के लिए धन्यवाद ध्यान दें कि यदि यह केवल एक टैब खुला है, तो यह काम नहीं करेगा। यह केवल अतिरिक्त टैब बंद करता है

फ़ायरफ़ॉक्स उस शोषण के खिलाफ सुरक्षित है इसलिए, एकमात्र जावास्क्रिप्ट तरीका सुरक्षा सेटिंग्स को एक समय में एक ब्राउज़र को पंगु करना है।

आप इसके about:config और सेट खोल सकते हैं
allow_scripts_to_close_windows true

यदि आपकी स्क्रिप्ट व्यक्तिगत उपयोग के लिए है, तो आगे बढ़ें और ऐसा करें यदि आप किसी अन्य को उस सेटिंग को चालू करने के लिए कहते हैं, तो वे पूर्वाग्रह के साथ अस्वीकार करने के लिए स्मार्ट और न्यायपूर्ण होंगे

वर्तमान में क्रोम के लिए कोई समान सेटिंग नहीं है

क्रोम ने संस्करण 36.0.1 9 85.125 पर सुरक्षा समस्याएं तय कीं

क्रोम 36.0.1985.125 बुधवार, जुलाई 16, 2014 रिलीज नोट

मेरे अवलोकन से, इस अद्यतन ने खिड़की का उपयोग करने पर समस्या तय की। क्लोज़ window.close() पॉपअप विंडो को बंद करने के लिए। आप इसे कंसोल में देखेंगे जब यह असफल हो जायेगा, "लिपियों केवल उस विंडो को बंद कर सकती हैं जो इसके द्वारा खोली गई थीं।" इसका अर्थ है कि हैक कामरौतों (ब्रॉक एडम्स का जवाब) नवीनतम रिलीज़ में काम नहीं कर सकता है

इसलिए, पिछले क्रोम में रिलीज़ हो गए, नीचे दिए गए कोड ब्लॉक काम कर सकते हैं लेकिन इस अद्यतन के साथ नहीं।

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

इस अद्यतन के लिए, आपको अपने कोड को तदनुसार अपडेट करना होगा ताकि पॉपअप विंडो बंद हो। समाधान का एक पॉपअप विंडो आईडी को पकड़ना और उपयोग करना है

 chrome.windows.remove(integer windowId, function callback) 

इसे हटाने के लिए विधि क्रोम एक्सटेंशन विंडो एपीआई क्रोम पर देखी जा सकती है.विंडो

असल में मेरे क्रोम एक्सटेंशन मार्कव्यू को इस समस्या का सामना करना पड़ रहा था और मुझे इस कोड को अपडेट करने के लिए इस क्रोम अपडेट के लिए काम करना था। वैसे, मार्कव्यू उपकरण को अप्रतिम मार्कडाउन फाइलों को पढ़ने और लिखने के लिए उपकरण है, इसमें कंटेंट आउटलाइन, सॉर्ट करने योग्य टेबल्स और लाइन नंबर के साथ कोड ब्लॉक सिंटैक्स हाइलाइट्स शामिल हैं।

मैंने यह पोस्ट भी बनाया है, किसी भी टिप्पणी का स्वागत है

मैं ब्रॉक एडम्स द्वारा पोस्ट की गई विधि का उपयोग कर रहा हूं और यह फ़ायरफ़ॉक्स में भी काम करता है, अगर यह उपयोगकर्ता की शुरुआत है

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

मैं इसे एक बटन प्रेस से बुला रहा हूँ ताकि उपयोगकर्ता आरंभ हो , और यह अभी भी क्रोम 35-40, इंटरनेट एक्सप्लोरर 11, सफ़ारी 7-8 और फ़ायरफ़ॉक्स 29-35 का उपयोग कर ठीक काम कर रहा है। मैंने विंडोज 8.1 और मैक ओएस एक्स 10.6, 10.9 और 10.10 के संस्करण का उपयोग करते हुए परीक्षण किया है यदि यह अलग है


पूरा कोड:

HTML:

 <input type="button" name="Quit" id="Quit" value="Quit" onclick="return quitBox('quit');" /> 

जावास्क्रिप्ट:

 function quitBox(cmd) { if (cmd=='quit') { open(location, '_self').close(); } return false; } 

इस परीक्षण पेज को आज़माएं: (अब क्रोम 40 और फ़ायरफ़ॉक्स 35 में परीक्षण किया गया है)

http://browserstrangeness.bitbucket.io/window_close_tester.htm

तम्परमकी में अब आप उपयोग कर सकते हैं

 // @grant window.close 

और फिर बस बस कॉल करें

 window.close(); 

बहुत सारे लोग अभी भी जावास्क्रिप्ट का उपयोग करते हुए क्रोम ब्राउज़र को बंद करने का एक तरीका ढूंढने की कोशिश कर रहे हैं। निम्नलिखित विधि केवल तब काम करती है जब आप एप लांचर के रूप में क्रोम का उपयोग करते हैं – उदाहरण के लिए किओस्क!

मैंने निम्नलिखित का परीक्षण किया है:

मैं निम्नलिखित एक्सटेंशन का उपयोग कर रहा हूं: कियोस्क बंद करें

मैं उपयोग के निर्देशों का पालन कर रहा हूं और यह ठीक काम करने लगता है (सुनिश्चित करें कि परीक्षण करते समय आप कैश साफ़ करें)। मेरे द्वारा उपयोग की जाने वाली जावास्क्रिप्ट (इवेंट पर क्लिक करने के लिए संलग्न है):

 window.location.href = '/closekiosk'; 

मुझे उम्मीद है कि किसी की मदद करता है, क्योंकि यह एकमात्र काम समाधान है जो मैंने पाया है I

नोट: ऐसा लगता है कि विस्तार पृष्ठभूमि में चलता है और क्रोम ट्रे आइकन जोड़ता है। इसमें निम्नलिखित विकल्प की जांच की गई है: "क्रोम को पृष्ठभूमि में चलें" (या समान पाठ)। आपको इसके साथ खेलने की आवश्यकता हो सकती है, जब तक यह आपके लिए काम नहीं करती। मैंने इसे अनियंत्रित किया और अब यह ठीक काम करता है!

सोचने के बावजूद यह "स्पष्ट रूप से झूठा" है, जो आप कहते हैं "एक विश्वास है" वास्तव में सही है Window.close के लिए मोज़िला दस्तावेज कहते हैं

इस पद्धति को केवल खिड़कियों के लिए बुलाया जाने की इजाजत दी जाती है जो कि खिड़की का उपयोग करते हुए स्क्रिप्ट द्वारा खोला गया था। Open विधि। यदि स्क्रिप्ट द्वारा विंडो खोला नहीं गया था, तो जावास्क्रिप्ट कंसोल में निम्न त्रुटि दिखाई देती है: स्क्रिप्ट्स विंडो बंद नहीं कर सकती हैं जो स्क्रिप्ट द्वारा खोले नहीं गए थे

आप कहते हैं कि यह "यह अभी भी करना है" लेकिन मुझे नहीं लगता कि आपको कोई संदर्भ मिलेगा जो इसे समर्थन करता है, हो सकता है कि आपने कुछ गलत किया हो?

नीचे कोड मेरे लिए काम किया है –

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

क्रोम पर परीक्षण 43.0.2357.81

यह बूढ़ा हो सकता है, लेकिन इसका जवाब दो।

मैं टैब बंद करने के लिए top.close () का उपयोग करता हूंwindow.close () या अन्य खुले … निकट मेरे लिए काम नहीं किया।

मुझे एक नया तरीका मिला जो मेरे लिए perfetly काम करता है

 var win = window.open("about:blank", "_self"); win.close(); 

सिर्फ अगर आप window.open () का उपयोग करते हुए एक नई विंडो खोलते हैं तो क्या नई विंडो कोड का उपयोग कर बंद कर सकती है जैसा मैंने ऊपर उल्लेखित किया है। यह मेरे लिए बिल्कुल काम करता है 🙂 नोट: किसी नए टैब में पेज खोलने के लिए कभी भी href का उपयोग न करें। Window.close () "href" के साथ काम नहीं करता है इसके बजाय window.open () का उपयोग करें

इस तरह की कुछ कोशिश करें onclick = "return self.close ()"