2014-07-02 2 views
5

में इंटरसेप्ट पेस्ट डेटा मुझे Intercept paste event in Javascript से निम्न कोड मिला।जावास्क्रिप्ट

मुझे चिपकाए जाने से पहले इसे प्राप्त करने की आवश्यकता है, अन्यथा मैं "\ n" अक्षर खो देता हूं जिन्हें मुझे सहेजने की आवश्यकता है।

यह आईडी के साथ एक तत्व के लिए क्लिपबोर्ड डेटा को अवरुद्ध करने के लिए बहुत अच्छा काम करता है। मुझे इसे सभी इनपुट तत्वों पर काम करने की ज़रूरत है। जब मैं इनपुट तत्वों को कुछ भी प्राप्त करने के लिए jQuery का उपयोग करने का प्रयास नहीं करता हूं।

किसी भी मदद की सराहना की जाती है।

var paster = function() { 
    var myElement = document.getElementByTagName('pasteElement'); 
    myElement.onpaste = function(e) { 
     var pastedText = undefined; 
     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'); 
     } 
     processExcel(pastedText); // Process and handle text... 
     return false; // Prevent the default handler from running. 
    }; 
} 
+2

वहां कोई jquery नहीं है। यह सिर्फ सादा जावास्क्रिप्ट है ... –

+0

सही। मैं इसे किसी भी तरह से करने के लिए तैयार हूँ। – wibberding

+1

तो अपना jquery कोड दिखाएं। हम आपके लिए समाधान को बाहर करने के लिए यहां नहीं हैं। –

उत्तर

9

बस दस्तावेज़ में paste ईवेंट श्रोता जोड़ें।

document.addEventListener("paste", function (e) { 
    console.log(e.target.id); 
    var pastedText = undefined; 
    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'); 
    } 
    e.preventDefault(); 
    e.target.value = "You just pasted '" + pastedText + "'"; 
    return false; 
}); 

fiddle

3

क्या nmaier कहा, लेकिन आप यह भी मूल ईवेंट की जांच की जरूरत है।

document.addEventListener("paste", function (e) { 
    console.log(e.target.id); 
    var pastedText = undefined; 
    if (window.clipboardData && window.clipboardData.getData) { // IE 
     pastedText = window.clipboardData.getData('Text'); 
    } else { 
     var clipboardData = (e.originalEvent || e).clipboardData; 
     if (clipboardData && clipboardData.getData) { 
      pastedText = clipboardData.getData('text/plain'); 
     } 
     e.preventDefault(); 
     e.target.value = "You just pasted '" + pastedText + "'"; 
     return false; 
    } 
}); 

इसके अलावा, आपको शायद पूरे दस्तावेज़ के बजाय, ईवेंट श्रोता को केवल तत्व में जोड़ना चाहिए।

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