Rolf B: Text-Input als Summary verwenden

Beitrag lesen

problematische Seite

Hallo Janosch,

das verrückteste ist: Das keyup-Event blubbert im Firefox ganz normal nach oben, zum Summary Element. Aber wenn es in einem input-Element generiert wurde, dann löst es im Summary nichts aus. Macht der Fuchs da etwa eine Abfrage auf target == currentTarget?

Gleich mal getestet, ob das auch die Chromia mittun:

for (let inp_in_sum of document.querySelectorAll("summary input")) {
  inp_in_sum.closest("summary")
            .addEventListener("keyup", function(event) {
    if (event.target != event.currentTarget) {
      event.preventDefault();
    }
  });
}

Im Firefox keine Veränderung, und Chrome ist jetzt brav. Diese Lösung finde ich akzeptabel, es gibt kein Fummeln am open-Attribut und kein Nachschieben von Spaces über das Selection Objekt. Ohne JavaScript tanzt der Bildschirm halt ein bisschen. Das könntest Du in deiner geschlossenen Benutzergruppe aber ggf. regeln.

Das closest könnte man sich mit dem Selektor "summary:has(input)" ersparen. Aber :has ist in Chromia gerade mal ein Vierteljahr alt und im Firefox noch experimentell.

Rolf

--
sumpsi - posui - obstruxi