2012-04-26 51 views
11

में ब्राउज़र को न्यूनतम और अधिकतम करने का तरीका है, मैं ब्राउज़र को कम से कम राज्यों को कम करने और राज्य को अधिकतम करने की कोशिश कर रहा हूं, क्योंकि मैं ब्राउज़र स्थिति के अनुसार AJAX अनुरोध को हिट करना चाहता हूं।ब्राउज़र का पता लगाने के लिए कैसे जावास्क्रिप्ट

क्या कोई जानता है कि मैं जावास्क्रिप्ट का उपयोग कर ब्राउज़र स्थिति का पता कैसे लगा सकता हूं।

+0

के बारे में क्या अगर यह कहीं बीच में? मैं शायद ही कभी खिड़कियों को अधिकतम चलाता हूं। – RobG

उत्तर

1

आप पृष्ठ दृश्यता API के साथ प्रयास कर सकते हैं, इसमें बुलियन प्रॉपर्टी दस्तावेज़ है। (दस्तावेज.webkitHidden) है, जो यह भी पता लगाता है कि वर्तमान पृष्ठ कम या अधिकतम है या नहीं। यह भी निर्भर है उपयोगकर्ता वर्तमान ब्राउज़र टैब या नहीं ध्यान केंद्रित किया है या नहीं:

https://developers.google.com/chrome/whitepapers/pagevisibility

https://developer.mozilla.org/en/DOM/Using_the_Page_Visibility_API

+0

मेरे मामले में जब पृष्ठ ब्राउज़र को छोटा करता है या alt टैब दबाता है तो पृष्ठ दृश्यता API स्थिति नहीं बदलता है। क्या यह एक अपेक्षित व्यवहार है क्योंकि यदि मैं ब्राउज़र को मूल रूप से छिपे हुए राज्य में छोटा करता हूं, है ना? – Sachin

13

मुझे लगता है कि इन राज्यों का पता लगाने के केवल विश्वसनीय तरीका visibility API एचटीएमएल 5 द्वारा की पेशकश की जाँच करने के लिए है (यह अभी भी है एक प्रायोगिक सुविधा) जो कुछ गुण और घटनाओं प्रदान करता है

document.hidden // Returns true if the page is in a state considered to be hidden to the user, and false otherwise. 

document.visibilityState // Returns a string denoting the visibility state of the document  

तुम भी दृश्यता की परिवर्तन पर प्रतिक्रिया कर सकते हैं

document.addEventListener("visibilitychange", function() { 
    console.log(document.hidden, document.visibilityState); 
}, false); 

ध्यान रखें कि यह क्रॉस ब्राउज़र काम नहीं कर रहा है और केवल कुछ ब्राउज़र संस्करणों में उपलब्ध है।

+0

जबकि windows.resize ओएसएक्स पर "कम से कम डॉक" (आइकनिफ़ाई/मिनिमाइज़) और "डॉक से बहाल" (पुनर्स्थापित) ऑपरेशन को नोटिस करने में विफल रहता है, यह तकनीक आपने यहां दिखायी है।बहुत बढ़िया! – Volomike

1

मैं इस कोड का उपयोग

window.addEventListener('blur', function(){ 
    console.log('blur'); 
}, false); 

window.addEventListener('focus', function(){ 
    console.log('focus'); 
}, false); 
+0

यह उत्कृष्ट है। आपका बहुत बहुत धन्यवाद – jaggedsoft

4

यहाँ Piotrek De के answer on another question:

वहाँ GitHub पर एक साफ पुस्तकालय उपलब्ध है:

https://github.com/serkanyersen/ifvisible.js

उदाहरण:

012,351,
// If page is visible right now 
if(ifvisible.now()){ 
    // Display pop-up 
    openPopUp(); 
} 

मैं सभी ब्राउज़रों मेरे पास है और इस बात की पुष्टि कर सकते हैं कि यह साथ काम करता है संस्करण 1.0.1 परीक्षण किया है:

  • IE9, IE10
  • एफएफ 26.0
  • क्रोम 34,0

और शायद सभी नए संस्करण।

पूरी तरह से काम नहीं करता:

  • IE8 - हमेशा संकेत मिलता है कि टैब/विंडो वर्तमान में सक्रिय है (है अब() हमेशा सच मेरे लिए रिटर्न)
संबंधित मुद्दे