2016-05-09 2 views
7

मैं एक पाठ क्षेत्र जहाँ उपयोगकर्ताओं को डेटा टाइप कर सकते हैं। वे टैब कुंजी का उपयोग कर सकते हैं और फिर फ़ील्ड इंडेंट हो जाता है। यह ब्लूटूथ कीबोर्ड के साथ आईओएस को छोड़कर सबकुछ पर बहुत अच्छा काम करता है।जावास्क्रिप्ट - आईपैड टैब कुंजी का पता लगाने डब्ल्यू/ब्लूटूथ कीबोर्ड

अगर मैं http://www.rapidtables.com/tools/notepad.htm जाते हैं, तो मैं यह कर सकते हैं टैब मेरी डेस्कटॉप/लैपटॉप पर। लेकिन मेरे आईपैड पर ... कोई पासा नहीं।

अगर मैं का दौरा https://api.jquery.com/keydown/, https://api.jquery.com/keyup/, https://api.jquery.com/keypress/ ... उनमें से कोई भी आईपैड पर टैब कुंजी का पता लगाने। ios देशी अनुप्रयोगों, नोट्स की तरह में

टैब कुंजी काम करता है, और टैब कुंजी किसी वेबपेज के भीतर क्षेत्रों के बीच नेविगेट करता है। क्या जावास्क्रिप्ट में टैब कुंजी का पता लगाने का कोई तरीका है जिसे किसी को भी पता है? https://jsfiddle.net/9jv0bmbx/1/ असल में मैं सिर्फ जाँच कर रहा हूँ कि e.keyCode===9 जो डेस्कटॉप/लैपटॉप पर काम करता है:

संपादित

यहाँ एक बेला मैं एक साथ फेंक दिया ताकि आप कार्रवाई में कोड और समस्या देख सकते हैं। iPad पर, यह टैब कुंजी को छोड़कर हर कुंजी पंजीकृत करता है।

+0

तो अगर आप कुंजी दबाने के लिए लॉग इन जब टैब हमलावर उपकरणों पर दबाया जाता है, यह कुछ भी प्रवेश नहीं करता है? यदि नहीं, तो यह हो सकता है कि वह टैब फ़ील्ड से बाहर निकल रहा हो, वास्तव में मैदान पर एक कीप्रेस को फायर करने के बिना। वैश्विक कीप्रेस लॉगर बनाने का प्रयास करें और देखें कि क्या आप एक टैब लॉग कर सकते हैं। निम्नलिखित करना चाहिए। $ (दस्तावेज़) .keydown (फ़ंक्शन (ई) { \t \t console.log (e.keyCode);}); – RayfenWindspear

+0

मैंने उस पहेली को जोड़ा। अब तक कुछ भी नहीं। लेकिन पहले क्षेत्र में टैब कुंजी अभी भी दूसरे फ़ील्ड पर फोकस ले जाती है। तो फ़ोकस ईवेंट को संभालने के लिए टैब कुंजी एप्लिकेशन (ब्राउज़र) द्वारा पंजीकृत है, लेकिन एक कुंजीपटल ईवेंट के रूप में नहीं, मैं अनुमान लगा रहा हूं।मैंने क्रोम और सफारी दोनों को एक ही परिणाम की कोशिश की है। –

+0

मेरे हाथों को एक पर मिला ... मेरा सुझाव काम नहीं किया। माफ़ कीजिये। – RayfenWindspear

उत्तर

1

EDIT2:

यहाँ एक समाधान के लिए एक और विकल्प है। मुझे एक लेख मिला जो सभी घटनाओं को कैप्चर करने के तरीके पर चला जाता है। नीचे एक jsfiddle है, और यहाँ article मुझे यह अवधारणा मिली है। ध्यान दें कि jsfiddle में मैं मूल addEventListener लौटाता हूं क्योंकि रिक्त श्रोता जोड़ने के बाद आपको जो चाहिए वह किया गया है।

jsfiddle

var oldAddEventListener = EventTarget.prototype.addEventListener; 

EventTarget.prototype.addEventListener = function(eventName, eventHandler) 
{ 
    oldAddEventListener.call(this, eventName, function(event) { 
     if(event.target.id === "textarea" && event.keyCode===9){ 
     event.preventDefault(); 
     $(this).val($(this).val()+"\t"); 
     $("#log").append("<li>Tab Pressed</li>"); 
     } 
    eventHandler(event); 
    }); 
}; 
$("#textarea").keydown(function(e) { 

}); 

EventTarget.prototype.addEventListener = oldAddEventListener; 

संपादित करें:

परीक्षण कुंजीपटल यहाँ टैब keydown कैप्चर करता है। इस पुस्तकालय में देखें, इसे आपके मुद्दों को ठीक करना चाहिए। या तो सीधे लाइब्रेरी का उपयोग करें, या कोड के माध्यम से खोदकर आईओएस पर टैब कैप्चर करने का तरीका जानें। http://dmauro.github.io/Keypress/

सामान्य टैब कुंजी प्रेस के रास्ते में कुछ प्रकार के हार्डवेयर/फ़ंक्शन कुंजी समस्या हो रही है। विकल्प + टैब दबाकर आपके हैंडलर को सामान्य की तरह आग लग जाएगी। शायद कुछ प्रकार की सेटिंग है जो इसका कारण बन रही है, लेकिन जाहिर है कि आप अपने उपयोगकर्ताओं को अपने ऐप का उपयोग करने के लिए अपनी सेटिंग्स बदलने की उम्मीद नहीं कर सकते हैं। आप किसी भी तरह से इसका लाभ उठाने के लिए कुछ रास्ता ढूंढ सकते हैं, लेकिन ऐसा लगता है कि यह डिफ़ॉल्ट व्यवहार है और आप इसके साथ फंस गए हैं।

iOS उपकरणों का पता लगाने और टैब के डिफ़ॉल्ट व्यवहार के लिए ओवरराइड किसी प्रकार का पता लगाने के लिए संभव हो सकता है। या आप फोकस को पकड़ने में सक्षम हो सकते हैं, या घटनाओं को धुंधला कर सकते हैं और पता लगा सकते हैं कि यह माउस के कारण नहीं था।

+0

मेरे पास समाधान के साथ एक और संपादन है, लेकिन मुझे आईपैड के साथ लड़के को एक्सडी अनलॉक करने के लिए दोपहर के भोजन से वापस आने के लिए इंतजार करना होगा। – RayfenWindspear

+0

मैंने यह देखने के लिए कि क्या मैं कीप्रेस का उपयोग कर सकता हूं, मैंने अभी http://jsfiddle.net/gqxgax76/ सेट अप किया है। मुझे पता चला कि जब दस्तावेज़/विंडो पर ध्यान केंद्रित किया गया है और कोई तत्व नहीं है, तो टैब कुंजी पहचानी जाती है। जैसे ही आप इनपुट/टेक्स्टरेरा पर ध्यान केंद्रित करते हैं, तब टैब अब काम नहीं करता है। मैं यह देखने जा रहा हूं कि क्या मुझे काम करने का दूसरा उदाहरण मिल सकता है। –

+0

कि jsfiddle मेरे अंत में टैब नहीं दिखाता है। ओपीटी + टैब अभी भी काम करता है। – RayfenWindspear

संबंधित मुद्दे