Frage

Alles was ich brauche ist in der Lage sein, zu erkennen, wenn Text in einen Textbereich fallen gelassen wird. Ich nehme dann, dass Text und tut Sachen mit ihm und das Textfeld löschen. Es kann viele dieser Textfelder sein und sehr hohe UI Erwartungen, so Polling ist ein letzter Ausweg.

Für IE, „onfocus“ funktioniert der Trick, da dieses Ereignis ausgelöst wird, nachdem der Benutzer Sachen in den Textbereich fällt.

Für Firefox, kann ich nicht ein Ereignis finden, das funktioniert. Ich habe versucht, onmouseup und Onchange .. weiß nicht, was sonst von dort zu versuchen. Ich würde es hassen, den Textbereich für Inhalte zu haben abzufragen. Hilfe sehr geschätzt. Danke.

Edit: Zur Klarstellung „fallen gelassen“ bedeutet, dass der Benutzer den Text (in der Regel) von der Seite wählt, aber es spielt keine Rolle, wo es zieht, und lässt es in den Textbereich. Dies ist nicht das Gleiche wie Strg + V oder Rechtsklick Einfügen (die zwei verschiedene Nachweismethoden nehmen, BTW), oder (natürlich) die Eingabe in das Textfeld. Insbesondere ist es der „Drop“ Aspekt von Drag & Drop. Ich weiß wirklich nicht, wie sonst Begriff es.

Ich fühle mich diese Frage eher zutreffend festgestellt wurde. Um Humor mir, davon ausgehen, dass ich eine der anderen Operationen auf einem Textfeld gemeint, dass Sie alle teilen gewählt haben. Wenn ich „Einfügen“ zu verstehen, glauben Sie nicht, ich hätte erwähnt etwas über Einfügen im Titel oder Inhalt meiner Frage? Das Gleiche gilt für Eingabe in einem Textfeld. Aber vielleicht, Sie alle wissen einfach nicht gut genug, um mich zu wissen, dass ich schreibe, was ich meine, anstatt mistakingly Typisierung Dinge nur etwas im Zusammenhang zu dem, was ich meine.

War es hilfreich?

Lösung 2

Polling scheint der einzige Weg, um zu gehen.

Wenn ein Drag + Drop-Operation im Browser gestartet wird, scheint es, alles auszulöschen anderes, das vor sich geht. Sie können dieses bezeugen von „onmouseover“ Ereignisse auf etwas auf der Seite setzen, dann eine DnD Inbetriebnahme und darüber ziehen. Die Ereignisse werden nicht ausgelöst.

Es scheint nur einen Zufall, wie der Browser intern behandelt „Drag and Drop“, dass es verursacht onfocus () für das Textfeld in IE und Safari abgefeuert werden. Ich bezweifle, dass es wird viel in der W3-Spezifikation definiert ... nicht, dass es darauf ankommt, W3 Mist ist, und außerdem niemand daran hält sich vollständig aus.

In meiner Frage stellte ich fest, den Luxus die TextArea- nach jedem Gebrauch Entleerung, so dass ich das Gefühl, dass die Abfrage für:. Textarea.value.length> 0 ist kaum Kosten und soll nicht viel von einem Performance-Problem sein

Aber leider hat es speziell mit dropping Inhalt in einen Textbereich zu tun.

Unten-Mod entfernt Ihre Schmerzen zu lindern.

Andere Tipps

Für Firefox, das funktioniert für mich:

window.addEventHandler("dragdrop", function(event) {alert("Drop it like it's hot!")}, true)

Ist in Safari nicht funktioniert, aber. Haben Sie nicht versucht IE.

Wenn Sie Ihr Textfeld wollen reagieren auf Text gelöscht wird, eingefügt oder eingegeben haben, ist Ihre einzige Lösung wäre eine Taste sein. Selbst eine Timer Abfrage der Inhalt wird nicht helfen.

Sie erwähnen, dass Sie den Benutzer mögen in der Lage zu geben Text in dem Textfeld. Und Sie erwähnen, dass Sie den Text löschen möchten, wenn das Ereignis ausgelöst wird. Es gibt keine Möglichkeit für den Browser zu wissen, dass der Benutzer die Eingabe beendet ist. Sie müssen auf eine bestimmte Aktion verlassen.

Jetzt für den Rückgang oder Paste, können Sie auf dem mouseup und keyup Ereignissen berufen, um das zu erkennen.

Was meinst du mit „fallen gelassen“? Sprechen Sie über eine Paste (^ V) Betrieb? Wenn ja Arons Antwort in der Tat korrekt ist, erhalten Sie keydown / keyup (und der Wert wird in keyup lesbar sein).

Ein generischer Rückruf, der auf jedes Update an einen Eingang passieren wird ist ‚onchange‘ - man könnte versuchen, dass. Beachten Sie, dass bei der Eingabe, es nicht aufgerufen, bis Sie die Eingabe zu beenden, und unfocus, also wenn Sie Instant-Updates benötigen sowohl auf Tipp- und andere Formen der Eingabe, Sie müssen noch ‚onkeyup‘ auch.

Bearbeiten re Klarstellung: IMO Onchange 'ausgelöst werden soll, wenn ein Drag-and-Drop verursacht Inhalt zu einem Textbereich hinzugefügt werden; Ich halte es für einen Browser-Fehler, es ist nicht (in Firefox zumindest). Ich kann in diesem Fall nur zustimmen, dass die Abfrage alle, die Sie verlassen haben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top