Cross-Browser-JavaScript-Eingabe Live Change / Paste-Erkennung

9

Gibt es eine browserübergreifende Möglichkeit, Live-Änderungen an einem Eingabefeld zu erkennen ?

By live , ich meine nicht, wenn das Feld den Fokus verliert und nicht beim nächsten Tastendruck und so weiter. Sofort oder so ähnlich.

Bei Verwendung von Kombinationen aus jQuery und .change() , .keyup() , .bind('paste') usw. kann ich in einigen Browsern, aber nicht allen die Erkennung von Live-Änderungen durchführen. Durch die Verwendung verschiedener Kombinationen wird es in anderen Browsern etwas funktionieren.

Das schwierigste Ding, das funktioniert, ist die Mausmanipulation des Eingabefeldes - Auswählen von Text und Verschieben (was im Wesentlichen ausschneiden und einfügen ist), Rechtsklicken und Einfügen oder Ausschneiden, usw. Für einige Grund sogar .mousedown() und .mouseup() scheinen es nicht zu schneiden.

Die einzige browserübergreifende Lösung, die ich mir jetzt vorstellen kann, ist, den Wert des Eingabefelds alle 100 Millisekunden zu prüfen und den Wert mit einem gespeicherten Wert zu vergleichen. Aber das scheint übertrieben zu sein wenn die ereignisbasierte Lösung so nahe kommt.

Gibt es ein jQuery-Plug-in, das das bereits tut? Oder gibt es einen anderen Weg, dies zu erreichen?

    
javascripteroo 20.06.2010, 15:15
quelle

2 Antworten

2

Um Ihre Änderungs- und Schlüsselhandler abzuschließen, können Sie Handler für Ausschneiden / Kopieren / Einfügen hinzufügen. Sie arbeiten in Firefox & gt; = 3, IE, Safari und Chrome (aber nicht in Opera / Konqueror).

Würde das alles für Ihren Anwendungsfall abdecken?

    
Chris Lercher 20.06.2010 15:29
quelle
1

Abhängig von den Browsern, die Sie unterstützen müssen, verwenden Sie möglicherweise HTML5s on-Eingabe .
Es wird sofort ausgelöst, wenn sich der überwachte Eingang ändert. In jQuery würden Sie einfach tun:

%Vor%     
raphinesse 02.08.2011 13:13
quelle