2012-08-28 8 views
29

मैं जावास्क्रिप्ट का उपयोग कर दस्तावेज़ के लिए कीप्रेस ईवेंट पंजीकृत करना चाहता हूं।document.onkeypress ईवेंट को पंजीकृत करने के लिए कैसे करें

मैं का इस्तेमाल किया है:

document.attachEvent("onkeydown", my_onkeydown_handler); 

यह IE, के साथ ठीक नहीं बल्कि फ़ायरफ़ॉक्स और क्रोम के साथ काम करता है।

मैं भी करने की कोशिश की:

document.addEventListener("onkeydown", my_onkeydown_handler, true); 
// (with false value also) 

लेकिन यह अभी भी फ़ायरफ़ॉक्स और क्रोम के साथ काम नहीं करता।

क्या कोई समाधान है, क्या मुझे कुछ याद आ रही है?

+0

आप कुछ कोड दिखा सकते हैं? – Phil

+0

[यहां संभावित उत्तर] (http://stackoverflow.com/questions/3763080/javascript-add-events-cross-browser-function-implementation-use-attachevent-add) – SuperSaiyan

उत्तर

54

आप के लिए देख रहे हैं cript:

document.addEventListener("keydown", keyDownTextField, false); 

function keyDownTextField(e) { 
var keyCode = e.keyCode; 
    if(keyCode==13) { 
    alert("You hit the enter key."); 
    } else { 
    alert("Oh no you didn't."); 
    } 
} 

डेमो: JSFIDDLE

+1

मैं दस्तावेज़ में खुद को ईवेंट जोड़ना चाहता हूं –

+0

संपादित कोड .. @ नीलेश पेठानी –

2

addEventListener() के लिए ईवेंट का नाम keydown है, onkeydown नहीं।

इसके अलावा, आपको ईवेंट हैंडलर को ट्रिगर तत्व से संलग्न करना चाहिए, न कि document

7

आप शायद के लिए देख रहे हैं:

document.body.addEventListener('keydown', function (e) { 
    alert('hello world'); 
});​​​​​​​ 

लेकिन यह लगभग निश्चित रूप से अपने समय वहाँ कई ब्राउज़रों की समस्याओं से अधिक अमूर्त के लिए एक मौजूदा पुस्तकालय का उपयोग करने के लायक होने जा रहा है।

0

विस्तृत विवरण के लिए कृपया निम्नलिखित लिंक देखें।

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

Javas

https://developer.mozilla.org/en-US/docs/DOM/element.addEventListener?redirectlocale=en-US&redirectslug=DOM%3Aelement.addEventListener

http://www.reloco.com.ar/mozilla/compat.html

संक्षेप में, हैंडलर लिखने के रूप में

function myFunction(e) 
{ 
    ///For IE 
    if(!e) 
     e=window.event; 

    // use e as event in rest of code. 
}