2014-07-02 10 views
5

Ich habe den folgenden Code von Intercept paste event in Javascript.Intercept Paste Daten in JavaScript

Ich muss es bekommen, bevor es eingefügt wird, sonst verliere ich die "\ n" Zeichen, die ich speichern muss.

Es funktioniert hervorragend, um Zwischenablage Daten für ein Element mit einer ID abzufangen. Ich brauche es für alle Eingabeelemente zu arbeiten. Wenn ich versuche, jQuery zu verwenden, um die Eingabeelemente nichts zu bekommen.

Jede Hilfe wird geschätzt.

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

dort ist keine jquery drin. das ist einfach JavaScript ... –

+0

Korrigieren. Ich bin bereit, es so oder so zu machen. – wibberding

+1

so zeigen Sie Ihren jquery Code. Wir sind nicht hier, um eine Lösung für Sie zu finden. –

Antwort

9

Fügen Sie dem Dokument einfach einen paste Ereignis-Listener hinzu.

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

Was nmaier sagte, aber Sie müssen auch für das ursprüngliche Ereignis überprüfen.

Außerdem sollten Sie wahrscheinlich den Ereignis-Listener nur dem Element hinzufügen, anstatt das gesamte Dokument.