Michael Krax: Mozilla hide/unhide workaround

Beitrag lesen

Hallo,

ein Bug in Mozilla hat mich einige Nerven gekostet - hier ein kleiner Workaround für Leidensgenossen:

Versucht man ein Objekt über style.display='none' zu verstecken bzw. mit display='inline' wieder zu zeigen verhält sich der Mozilla teilweise unberechenbar (offensichtlich wegen Timing Problemen der Rendering Engine). Ganz schlimm wird es, wenn man ein Objekt über nextSibling anspricht. Der Schlüssel ist, im ersten Sibling kein A Tag zu verwenden.

Hier etwas Demo Code um den Bug zu verdeutlichen:

<div onClick="this.nextSibling.style.display='inline';">show (working)</div><div style="display:none;">me<img src="http://www.mozilla.org/images/mozilla-banner.gif"></div>

<br><br>

<div onClick="this.nextSibling.style.display='inline';"><a href="">show (bug test 1, works when working sample used before)</a></div><div style="display:none;">me<img src="http://www.mozilla.org/images/mozilla-banner.gif"></div>

<br><br>

<div onClick="this.nextSibling.style.display='inline';"><a href="javascript:void(0);">show (bug test 2)</a></div><div style="display:none;">me<img src="http://www.mozilla.org/images/mozilla-banner.gif"></div>

Viele Grüße,
Michael