जब उपयोगकर्ता contenteditable div
संपादित करता है, और कुछ कुंजियां दबाता है, तो मैं ओवरराइड करना चाहता हूं डिफ़ॉल्ट व्यवहार उदाहरण के लिए, जब उपयोगकर्ता ENTER दबाता है तो मैं एक सामान्य लाइन ब्रेक डालना चाहता हूं। मुझे लगता है कि document.execCommand("insertText",...)
दस्तावेज.execCommand ("insertText", ...) के लिए इंटरनेट एक्सप्लोरर विकल्प, पाठ प्रविष्टि के लिए जिसे उपयोगकर्ता द्वारा पूर्ववत/दोबारा किया जा सकता है
इस का उपयोग करते हुए एक ही रास्ता मैं अब तक पाया है इस कार्रवाई पूर्ववत करने योग्य और redoable उपयोगकर्ता द्वारा बनाने के लिए है।
<div id="editor" contenteditable="true" style="white-space:pre-wrap">
Some text....
</div>
<script>
$("#editor").keydown(function(evt){
console.log(evt.keyCode);
if(evt.keyCode==13){
document.execCommand("insertText",false,"\n");
evt.preventDefault();
evt.stopPropagation();
}
}
</script>
यह कोड क्रोम और फ़ायरफ़ॉक्स पर अच्छी तरह से काम करता है। लेकिन, यानी "inserttext" का समर्थन नहीं करता है। यानी पाठ को सम्मिलित करने का कोई तरीका होगा, जैसे कि उपयोगकर्ता पूर्ववत कर सकता है?
IE के जो संस्करण आप परवाह करते हैं? आईई 11 में स्टार्ट/एंड-अंडेबल-एक्शन कमांड हैं लेकिन पिछले संस्करण नहीं हैं। –
@ टिमडाउन, मेरी वर्तमान स्थिति की तुलना में किसी भी सुधार का स्वागत है :) बेशक, यह बेहतर है अगर यह पुराने संस्करणों के लिए भी काम करता है, लेकिन यानी 11 कुछ भी नहीं है। – Oli
@ टिमडाउन, कृपया अपना उत्तर पोस्ट करें। यह बहुत उपयोगी होगा। – Oli