9

पेस्ट से पहले सभी HTML मार्करों को साफ़ करने के लिए मैं contenteditable के लिए पेस्ट ईवेंट प्रबंधित कर रहा हूं। सभी Firefox और Chrome में ठीक काम करता है। लेकिन जब मैं IE11 में अपने कोड का परीक्षण करता हूं, event object पास ClipboardEvent नहीं है लेकिन DragEvent है।इंटरनेट एक्सप्लोरर पर गलत तर्क प्राप्त करने वाले ईवेंट एक्सप्लोरर

क्या मेरे कोड में कुछ गड़बड़ है? यदि मैं श्रोता को कोड के रूप में जोड़ता हूं, तो मुझे क्लिपबोर्ड ईवेंट प्राप्त करना चाहिए। मुझे ड्रैग क्यों मिल रहा है?

editable.addEventListener('paste', pasteHandler, false); 

http://jsfiddle.net/vepo/4t2ofv8n/

ऊपर के उदाहरण का परीक्षण करने के लिए, मैं Chrome से किसी पाठ की प्रतिलिपि और IE में पेस्ट करें। लेकिन मैं आईई से किसी भी पाठ की प्रतिलिपि बना दूंगा, वही त्रुटि मिलेगी।

उत्तर

9

संपादित

$(document).ready(function(){ 
    var editable = document.getElementById('editable-div'); 
    var pasteHandler = function(e){ 
     if(e.clipboardData && e.clipboardData.getData) { 
      var pastedText = ""; 
      if (window.clipboardData && window.clipboardData.getData) { // IE 
       pastedText = window.clipboardData.getData('Text'); 
      } else if (e.clipboardData && e.clipboardData.getData) { 
       pastedText = e.clipboardData.getData('text/plain'); 
      } 

      alert(pastedText); 
     } 
     else{ 
      alert('Not paste object!'); 
     } 
    }; 
    editable.addEventListener('paste', pasteHandler, false); 
}); 
यहाँ

मैं भी IE संस्करण और अन्य ब्राउज़रों संभाल।

JSFiddle

+0

HTMLDivElement का समर्थन नहीं करता 'attachEvent': https://msdn.microsoft.com/ en-us/library/windows/apps/hh868700.aspx – Victor

+0

मुझे पता है कि मैंने jquery ढांचे के दृष्टिकोण का सुझाव दिया है। –

+1

मुझे अभी भी प्ले टेक्स्ट नहीं मिल रहा है: http://jsfiddle.net/vepo/4t2ofv8n/2/ – Victor

1

e.clipboardData IE पर मेरे लिए अशक्त हमेशा था, इसलिए मैं इस के साथ आया था:

var pastedText = ''; 
if (typeof e.clipboardData === 'undefined') 
    pastedText = window.clipboardData.getData('Text') 
else 
    pastedText = e.clipboardData.getData('text/plain') 
संबंधित मुद्दे