Problém s onClick a styly na dynamicky přidaných prvcích v IE

January 11, 2007 on 6:53 pm | In Programing |

Již v neděli jsem zjistil, že IE má problémy s dynamicky přidanými prvky. Hned po tom, co jsem s úspěchem odstranil tento problém, tak se vyskytl další :-( . Holt s IE se člověk nikdy nenudí. Pokud přidáte do stránky nějaky nový prvek (dynamicky) přes DOM metody JavaScriptu a nastavíte si k ní styly a onclick akci takto:

div = document.createElement('div');
div.setAttribute('class', 'inline hand');
div.setAttribute('onclick', 'javascript:explorerGetContent(\'-parametr\');');

…tak zkuste hádat? Ano, ve všech webových prohlížečích (Firefox, Opera, Konqueror) to bude fungovat přesně, jak by jste čekali. Na daný div se aplikují styly “inline” a “hand” a po uživatelově kliku se spustí fce explorerGetContent(). Jenže opět nám IE (verze 6.0!, se sedmičkovou řadou zatím nemám zkušenosti) dokazuje, že do kategorie webových prohližečů prostě nepatří. Neaplikují se ani styly ani javascript. Navíc velice zajimavý je fakt, že fyzicky se ty parametry do divu opravdu vloži - jsem si je nechal “vypsat” (metodou window.alert()), jen je jaksi IE zapomene provést :-(

Bohužel tento problém se mi efektivně zatím nepodařilo vyřešit, takže najde-li se někdo kdo zná řešení, prosím neváhejte a podělte se se mnou s těmito informacemi v diskuzi. Já totiž mám pouze částečné řešení:

div.onclick = explorerGetContent;
div.className = 'inline hand';

Styly se takto dají nastavit bez problému a vše funguje tak jak chci všude (včetně IE). Akce onClick funguje taktéž, ale má jeden obrovský neduh - do div objektu totiž nastavujete pouze danou fci (přesněji řečeno handler dané akce). Tedy nemůžete zadat parametry! Což je bohužel stav, se kterým nemohu dále pokračovat. Snad se mi podaří nalézt lepší řešení…

1 Comment »

RSS feed for comments on this post. TrackBack URI

  1. Jestli hledáš řešení je jednoduchý je to vysvětlený
    tady.
    Stačí např: místo
    tr1.setAttribute(”class”,”name1″);
    napsat
    tr1.setAttribute(”className”,”name1″);

    Comment by Krata — 2008-03-12 #

Leave a comment

XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>

Powered by WordPress with Pool theme design by Borja Fernandez.
Entries and comments feeds. Valid XHTML and CSS. ^Top^