2017-02-20 8 views
12

मैं किसी पृष्ठ पर कीप्रेस का पता लगाने के लिए निम्न विधि का उपयोग कर रहा हूं। मेरी योजना यह पता लगाना है कि एस्केप कुंजी दबाई जाती है और यदि ऐसा हो तो एक विधि चलाएं। फिलहाल मैं लॉग इन करने का प्रयास कर रहा हूं कि कौन सी कुंजी दबाई जाती है। हालांकि एस्केप कुंजी कभी नहीं पता चला है।कोणीय 2 होस्ट लिस्टनर कीप्रेस एस्केप कुंजी का पता लगाता है?

@HostListener('document:keypress', ['$event']) 
handleKeyboardEvent(event: KeyboardEvent) { 
    console.log(event); 
    let x = event.keyCode; 
    if (x === 27) { 
     console.log('Escape!'); 
    } 
} 

उत्तर

19

Esc कुंजी कब्जा करने के लिए एक keydown या keyup घटना के साथ यह कोशिश करो।

+1

धन्यवाद भाई। आपने मेरा दिन बना दिया! –

+0

यह तय करने के लिए कि कौन सी प्रमुख घटनाओं का उपयोग करना है, इस SO उत्तर को जांचें: https://stackoverflow.com/a/46403258/3380547 – Sagar

+0

यह केवल 'कीपअप' थी जो मेरे लिए काम करता था: अंगूठे ऊपर: – vincecampanale

15

यह मेरे लिए काम किया निम्नलिखित कोड का उपयोग कर:

const ESCAPE_KEYCODE = 27; 

@HostListener('document:keydown', ['$event']) onKeydownHandler(event: KeyboardEvent) { 
    if (event.keyCode === ESCAPE_KEYCODE) { 
     // ... 
    } 
} 

या कम रास्ते में:

@HostListener('document:keydown.escape', ['$event']) onKeydownHandler(evt: KeyboardEvent) { 
    // ... 
} 
0

आधुनिक दृष्टिकोण

@HostListener('document:keydown', ['$event']) onKeydownHandler(event: KeyboardEvent) { 
    if (event.key === "Escape") { 
     // Do things 
    } 
} 
संबंधित मुद्दे