j.j.: <object data=jpg onclick> Problem mit Firefox gelöst

Hallo, für die Nachwelt:

Ich hatte hier vor etlichen Wochen gefragt, warum für <object data=jpg>
obj.onclick erst ab neueren Firefox funktioniert etc.[1]

Wann und warum sich das in Fx geändert hat, weiß ich nicht, ansonsten allesklarsoweit.

Offenbar entgegen der (aktuellen?) Norm erzeugte Gecko auch für eingebettete Grafiken ein window, wie es für HTML- oder SVG-Dateien angesagt ist.

Triviale Lösung: obj.contentWindow.onclick verwenden

const OBJ = obj.contentWindow ? obj.contentWindow // Fx -13x+ ??
                              : obj;
OBJ.onclick = OBJ.onfocus = function() { ... }

.

The object element can represent an external resource, which, depending on the type of the resource, will either be treated as an image or as a child navigable.

html.spec.whatwg.org/...#the-object-element

Der zitierte Text war mein Schlüssel zur Lösung.
j.j.


  1. wegen brotloser Nebenkriegsschauplätze will ich nicht darauf verlinken ↩︎

  1. Liebe(r) j.j.,

    Hallo, für die Nachwelt:

    na, da wollen wir mal schauen, dass diese die richtigen Schlüsse aus Deinen Erkenntnissen zieht.

    Ich hatte hier vor etlichen Wochen gefragt, warum für <object data=jpg>
    obj.onclick erst ab neueren Firefox funktioniert etc.

    Auch wenn Du es nicht wahrhaben willst und von „brotlosen Nebenkriegsschauplätzen“ sprichst, ist Dein Vorgehen nicht unproblematisch.

    In aller Regel ist es nicht sinnvoll, einem Bild einen click-Handler zu geben, weil man es damit ja interaktiv macht. Bilder sind aber keine interaktiven Elemente. Das ist semantisch wirklich nicht gut! Besser wäre es, Buttons oder Links mit einem solchen Handler auszurüsten, weil diese Elemente von sich aus schon interaktiv sind. Dass Du Dein Bild auch noch in ein object-Element verpackst, macht es nicht besser. Man muss sich fragen, warum Du das überhaupt zu benötigen meinst.

    Liebe Grüße

    Felix Riesterer