CSS, HTML und Javascript mit {stil}

Javascript onselect • Beim Markieren eines Texts

on select: Text in einem Eingabefeld markiert

Javascript onselect ruft einen Event Handler auf, wenn der Benutzer einen Text in einem Eingabefeld eines Formulars markiert.

select • Javascript-Ereignis für INPUT und TEXTAREA

onselect klingt, als wäre es ein Event für ein select-Element in einem Formular, reagiert aber tatsächlich auf das Markieren eines Textes in einem Eingabefeld (beim Ändern von input, textarea und select feuert ein onchange-Event).

onselect wird z.B. für Editoren eingesetzt – z.B. in den Editoren von Content Management Systemen, wo der Editor erkennen muss, dass ein Text markiert wurde, um über einen Button fett gesetzt zu werden.

Javascript onselect in einer Textarea – beim Markieren von Text

Markierten Text erkennen

Wenn der Benutzer Text in einem input- oder textarea-Feld markiert (gleich, ob durch Klicken und Ziehen der Maus oder durch Tastatur-Befehle wie Shift + Rechtspfeil), meldet onselect dieses Event.

Ein Event Handler für textarea könnte z.B. einen markierten Text in strong-Tags setzen, um ein Textfeld mit zusätzlichen Funktionen auszustatten.

…
<form>
   <p><input type="text" value="Textstelle markieren" id="input" /></p>
   <textarea id="textarea">Markieren Sie eine Textstelle</textarea>
   …
</form>
…
<script type="text/javascript">
document.getElementById ('input').onselect =
  document.getElementById ('textarea').onselect = function(evt) {
	console.log(evt);
};
</script>
…

Copy to Clipboard

Das war einst die Hauptaufgabe für onselect: den markierten Text in das Clipboard – den Zwischenspeicher – zu kopieren. Die modernen Browser spielen da allerdings nicht mehr mit, sie lesen den Inhalt eines input- oder textarea-Feldes nicht ohne Weiteres und überschreiben nicht mir nichts dir nichts das Clipboard des Users.

Man stelle sich nur einmal vor, was ein Third-Party-Skript im Browser (z.B. ein AddOn) alles mit dem Inhalt eines Eingabefeldes anstellen könnte: Passwörter und andere sensible Daten auslesen.

Zwischenzeitlich gab es nur noch Copy to Clipboard-Lösungen, die auf Flash basierten.

Inzwischen ist es mit document.execCommand() und cut, copy oder paste wieder möglich, den Inhalt eines Eingabefeldes in das Clipboard zu kopieren. Diese Funktionen unterliegen aber Einschränkungen und sind zwischen unterschiedlichen Betriebssystemen und Browsern nicht konsistent.

Roll your own Copy to Clipboard Funktion auf sitepoint.com

onselect Attribute

target
Objekt zu dem das Ereignis ursprünglich gesendet wurde
eventPhase
Phase, in der das Ereignis bearbeitet wird: AT_TARGET, BUBBLING_PHASE, CAPTURING_PHASE
bubbles
true, wenn das Ereignis nach oben steigen kann
cancelable
Nein
timeStamp
Zeit in Millisekunden, zu der das Ereignis eingetreten ist