Hallo dedlfix,
ist schon alles richtig. Aber trotz stopPropagation braucht es noch ein preventDefault, gerade mal in den DevTools probiert. Warum, weiß ich auch nicht so recht - ohne Propagation bekommt der Brauser ja eigentlich nichts mehr vom Tastendruck mit.
Update: Kollege Mozilla meint dazu:
The stopPropagation() method of the Event interface prevents further propagation of the current event in the capturing and bubbling phases. It does not, however, prevent any default behaviors from occurring; for instance, clicks on links are still processed. If you want to stop those behaviors, see the preventDefault() method.
Die DOM-Spec unterscheidet auch zwischen einem stop-propagation und einem canceled Flag. preventDefault setzt canceled. Und offenbar findet das Default-Verhalten eines Events unabhängig von der Propagation statt. Aber ob die Spec das hergibt, dafür müsste ich mir diesen Haufen "if this then that" durchlesen, aber offenbar findet das Default-Verhalten außerhalb des Bubblings statt.
Update: Soweit ich das begreife, wird diese Hypothese von der Spec bestätigt. Schritt 5.13 und 5.14 beschreiben das Bubbling, und das Default-Verhalten ("activation behavior") folgt in Schritt 11 separat.
Rolf
sumpsi - posui - obstruxi