इसे necroposting के लिए क्षमा करें, लेकिन मैंने हाल ही में एक स्थानीय रूप से होस्ट की गई साइट को कार्यान्वित किया है, जिसे वर्तमान ब्राउज़र टैब को बंद करने की क्षमता की आवश्यकता थी और कुछ दिलचस्प वर्कअराउंड पाए गए जो कि मुझे कहीं भी अच्छी तरह से प्रलेखित नहीं हैं, इसलिए मुझे ऐसा करने के लिए खुद पर ले लिया।
नोट: ये वर्कअराउंड स्थानीय रूप से होस्ट की गई साइट को ध्यान में रखते हुए किए गए थे, और (एज को छोड़कर) ब्राउज़र को विशेष रूप से कॉन्फ़िगर करने की आवश्यकता है, इसलिए सार्वजनिक रूप से होस्ट की गई साइटों के लिए यह आदर्श नहीं होगा।
संदर्भ: अतीत में, jQuery स्क्रिप्ट window.close()
अधिकांश ब्राउज़र पर समस्या के बिना वर्तमान टैब को बंद करने में सक्षम थी। हालांकि, आधुनिक ब्राउज़र अब इस स्क्रिप्ट का समर्थन नहीं करते हैं, संभवतः सुरक्षा कारणों से।
गूगल क्रोम:
Chrome, window.close () स्क्रिप्ट को चलाने की अनुमति नहीं देता है और यदि आप इसका उपयोग करने का प्रयास करते हैं तो कुछ भी नहीं होता है। Chrome प्लगइन टैम्परमॉन्की का उपयोग करके हालांकि हम विंडो.क्लास () विधि का उपयोग कर सकते हैं यदि आप // @grant window.close
टैम्परमॉन्की के उपयोगकर्तास्क्रिप्ट हेडर में शामिल हैं।
उदाहरण के लिए, मेरी स्क्रिप्ट (जो तब चालू होती है जब id = 'close_page' वाला बटन क्लिक किया जाता है और यदि ब्राउज़र पॉपअप पर 'हां' दबाया जाता है) ऐसा दिखता है:
// ==UserScript==
// @name Close Tab Script
// @namespace http://tampermonkey.net/
// @version 1.0
// @description Closes current tab when triggered
// @author Mackey Johnstone
// @match http://localhost/index.php
// @grant window.close
// @require http://code.jquery.com/jquery-3.4.1.min.js
// ==/UserScript==
(function() {
'use strict';
$("#close_page").click(function() {
var confirm_result = confirm("Are you sure you want to quit?");
if (confirm_result == true) {
window.close();
}
});
})();
नोट: यह समाधान केवल टैब को बंद कर सकता है यदि यह अंतिम टैब खुला नहीं है। इतनी प्रभावी रूप से, यह टैब को बंद नहीं कर सकता है यदि यह अंतिम टैब खुला होने के कारण विंडो को बंद कर देगा।
फ़ायरफ़ॉक्स:
फ़ायरफ़ॉक्स में एक उन्नत सेटिंग है जिसे आप स्क्रिप्ट को विंडोज़ को बंद करने की अनुमति दे सकते हैं, प्रभावी रूप से window.close()
विधि को सक्षम करने में । सक्षम करने के लिए इस सेटिंग के बारे में जाने के लिए : कॉन्फ़िगर करें तब खोज करें और dom.allow_scripts_to_close_windows वरीयता खोजें और इसे असत्य से सत्य पर स्विच करें।
यह आपको window.close()
किसी अन्य स्क्रिप्ट के रूप में सीधे अपनी jQuery फ़ाइल में विधि का उपयोग करने की अनुमति देता है ।
उदाहरण के लिए, यह स्क्रिप्ट सत्यता के लिए प्राथमिकता के साथ पूरी तरह से काम करती है:
<script>
$("#close_page").click(function() {
var confirm_result = confirm("Are you sure you want to quit?");
if (confirm_result == true) {
window.close();
}
});
</script>
यह क्रोम वर्कअराउंड की तुलना में बहुत बेहतर काम करता है क्योंकि यह उपयोगकर्ता को वर्तमान टैब को बंद करने की अनुमति देता है, भले ही वह एकमात्र टैब खुला हो, और उसे तीसरे पक्ष के प्लगइन की आवश्यकता नहीं होती है। हालांकि एक नकारात्मक पक्ष यह है कि यह इस स्क्रिप्ट को विभिन्न वेबसाइटों द्वारा चलाने में सक्षम बनाता है (न कि सिर्फ एक जिसे आप इसे इस्तेमाल करने के लिए इच्छुक कर रहे हैं) इसलिए यह संभावित रूप से एक सुरक्षा खतरा हो सकता है, हालांकि मैं कल्पना नहीं कर सकता कि वर्तमान टैब को बंद करना विशेष रूप से खतरनाक है।
एज:
निराशाजनक रूप से एज ने वास्तव में मेरे द्वारा की गई सभी 3 ब्राउज़रों में से सर्वश्रेष्ठ प्रदर्शन किया, और window.close()
किसी भी कॉन्फ़िगरेशन की आवश्यकता के बिना विधि के साथ काम किया । जब window.close()
स्क्रिप्ट चलाई जाती है, तो एक अतिरिक्त पॉपअप आपको सचेत करता है कि पृष्ठ वर्तमान टैब को बंद करने की कोशिश कर रहा है और पूछता है कि क्या आप जारी रखना चाहते हैं।
अंतिम नोट: क्रोम और फ़ायरफ़ॉक्स दोनों के समाधान कुछ के लिए वर्कअराउंड हैं जो ब्राउज़र जानबूझकर अक्षम हैं, संभवतः सुरक्षा कारणों से। वे दोनों को अपने उपयोगकर्ताओं को हाथ से पहले संगत होने के लिए कॉन्फ़िगर करने की आवश्यकता होती है, इसलिए संभवतः सार्वजनिक उपयोग के लिए लक्षित साइटों के लिए व्यवहार्य नहीं होगा, लेकिन मेरे जैसे स्थानीय रूप से होस्ट किए गए समाधानों के लिए आदर्श हैं।
उम्मीद है कि इस मदद की! :)