Internet Explorer si innerHTML

Atunci când lucrezi cu Prototype JS, nu folosi innerHTML pentru a schimba continutul unui SELECT (sau a unui TR)… va refuza să funcționeze în minunatul Internet Explorer

/**
 * nu functioneaza in Internet Explorer,
 * dar o face in Firefox, de exemplu
 */

$('id_select').innerHTML = '<option value="bla">optiune noua</option>';

Ca atare, PrototypeJS rezolva problema in metoda Element.update

/**
 * functioneaza in Internet Explorer si in Firefox
 */

$('id_select').update('<option value="bla">optiune noua</option>');
Articole similare

4 comentarii

  1. WhiteWolf
    Twitter:
    a zis:

    O axiomă(de la “scoala” W3C Markup sectiunea “Why should I validate my HTML pages?”) care ar trebui printată şi afişată deasupra monitorului oricărui webdesigner din lumea asta, zice asa:
    One of the important maxims of computer programming is: “Be conservative in what you produce; be liberal in what you accept.”

    Browsers follow the second half of this maxim by accepting Web pages and trying to display them even if they’re not legal HTML.
    Usually this means that the browser will try to make educated guesses about what you probably meant. The problem is that different browsers (or even different versions of the same browser) will make different guesses about the same illegal construct; worse, if your HTML is really pathological, the browser could get hopelessly confused and produce a mangled mess, or even crash.

    That’s why you want to follow the first half of the maxim by making sure your pages are legal HTML. The best way to do that is by running your documents through one or more HTML validators.

    Pe bune, mie mi-a placut de prima oara cand am citit-o; inca imi place. Mai ales ideea ca, pana si la scolile “gratuite” poti invata lucruri bune daca esti suficient de atent si interesat. :P
    Acum ca stii de ea, parerea ta care-i ? :D

    • Liviu a zis:

      Aceeași: Internet Explorer continuă să fie idiot chiar și în ultima versiune (8 dacă nu mă înșel). Într-adevăr, s-au făcut progese în ultima versiune, dar mai este destul loc de mai bine…

      Fix pe subiectul articolului, codul HTML poate fi validat până la sânge, ba chiar până la os, codul de JavaScript tot nu va funcționa, în prima variantă.

      Problem de față o găsești și pe site-ul Microsoft, declarată ca bug.

  2. WhiteWolf
    Twitter:
    a zis:

    Stiri de la Microshit nu mai citesc demult :D Oricum up-date-urile vin tarziu si cam la fel ca si patrunjelul in supa. fara sa strice sau sa ajute :P
    Ce sa zic ? Vulpitza Firefoxoasã incepe si ea sa se imbolnaveasca de bolile Explorerului (din ce in ce mai lent si mai plin de inutilitati), noul aparutul Safari chiar pare rescris integral pe parte de Java la cat de istets se misca doar ca intzepeneste pur si simplu daca incerci sa adaugi ceva unui mail. Si tot asa….
    Mai bine zicem ca avem compuri neperformante :D

Comentează

Toate drepturile rezervate © Liviu Hariton