Henryk Plötz: ungewolltes Markieren bei Drag and Drop

Beitrag lesen

Moin,

sorry, allerseits, ich habe das Problem bereits gelöst. Und zwar habe ich ein input-Element der Größe 1*1 erstellt und setze bei jedem mousemove den focus darauf.

Na dann wollen wir für das Archiv nochmal die richtige[tm] Lösung erwähnen.
Nach DOM2-Events-Standard hat das Event-Objekt, dass ein Listener übergeben bekommt, eine Methode namens preventDefault(), die verhindert, dass die Standardaktion die für das Event registriert ist, ausgeführt wird (bei mousemove unter Umständen also Markieren).
Nach IE-Möchtegernstandard gibt es ausserdem eine Eigenschaft des globalen window.event-Objektes namens returnValue, die auf false gesetzt etwa das gleiche bewirkt.
Und nach dem alten Netscape-Modell muß die Funktion (wenn ich mich da richtig erinnere) false zurückgeben.

Wenn man sich einen stinknormalen Eventhandler anschaut, muss man also nur drei Zeilen einfügen, um bei allen Varianten die Default-Aktion zu verhindern (hier mit //* markiert):

function blahandler(ev)
{
 if(!ev) ev = window.event; // Für den IE

// ...allerlei tun...

if(ev.preventDefault) ev.preventDefault(); //*
 ev.returnValue = false; //*
 return false; //*
}

--
Henryk Plötz
Grüße aus Berlin