मैंने उपरोक्त उत्तरों को स्कैन किया और प्रस्तावित keydown/ keyupदृष्टिकोण केवल विशेष परिस्थितियों में काम करता है। यदि उपयोगकर्ता ऑल्ट-टैब को दूर करता है, या एक नई ब्राउज़र विंडो या टैब खोलने के लिए एक प्रमुख इशारे का उपयोग करता है, तो एक keydownवसीयत पंजीकृत होगी, जो ठीक है, क्योंकि उस समय यह बताना असंभव है कि क्या कुंजी वेब ऐप की निगरानी कर रही है। , या एक मानक ब्राउज़र या OS शॉर्टकट है। ब्राउज़र पेज पर वापस आ रहा है, यह अभी भी लगता है कि कुंजी आयोजित की जाती है, हालांकि इस बीच जारी किया गया था। या कुछ कुंजी बस रखी जाती है, जबकि उपयोगकर्ता माउस के साथ किसी अन्य टैब या एप्लिकेशन पर स्विच कर रहा है, फिर हमारे पृष्ठ के बाहर जारी किया गया है।
संशोधक कुंजियों ( Shiftआदि) के माध्यम से निगरानी की जा सकती mousemoveहै, यह मानते हुए कि वापस टैब करते समय कम से कम एक माउस इंटरैक्शन अपेक्षित है, जो अक्सर होता है।
सबसे अन्य सभी चाबियाँ के लिए (संशोधक को छोड़कर, Tab, Delete, लेकिन सहित Space, Enter), निगरानी keypressसबसे अनुप्रयोगों के लिए काम करेगा - एक कुंजी के दबे आग के लिए जारी रहेगा। keypressफायरिंग की आवधिकता के कारण कुंजी को रीसेट करने में कुछ विलंबता है । असल में, अगर keypressफायरिंग नहीं होती है, तो अधिकांश चाबियों को नियंत्रित करना संभव है। यह, संशोधक के साथ संयुक्त बहुत वायुरोधी है, हालांकि मैंने यह नहीं पता लगाया है कि क्या करना है Tabऔर क्या करना है Backspace।
मुझे यकीन है कि वहाँ कुछ पुस्तकालय है जो इस DOM कमजोरी पर अमूर्त है, या शायद कुछ DOM मानक परिवर्तन ने इसका ध्यान रखा, क्योंकि यह एक बहुत बड़ा सवाल है।