22. februar 2005 - 17:39Der er
3 kommentarer og 1 løsning
innerText i Firefox ?
Hej
Sidder og forsøger at skrive noget html. når jeg vil valdiderer min form, vil jeg istedet for en idiotisk alert() box, skrive en fin rød tekst i toppen.
Det skal foregå i <div id="formFejl"></div> men jeg prøver at bruge document.all.formFejl.innerText = "fejl"; så siger Firefox at document.all ikke har nogle artributter , og IE laver noget uforståeligt fejl, viser "fejl" og skjuler det med det samme.
Nogen ide'er til hvordan dette kan løses ? (og der skal være flere fejlmeddelser, altså varialbelt, så en <input> eller <textarea> duer heller ikke)
For det første er document.all ikke en del af Firefox's DOM - det er en IE-ting, og jeg vil anbefale at du bare vender dig af med at bruge den. Brug istedet document.getElementById("formFejl")
For det andet er innerText, som du også nok har fundet ud af, også en IE ting. Det nærmeste du kommer i Firefox er propertien textContent, som opfører sig på samme måde. Dog er det bedre bare at bruge innerHTML, som virker i begge browsere, så slipper du for at teste bøvle med det.
Altså alt i alt bør din javascript-sætning se nogenlunde sådan ud: document.getElementById("formFejl").innerHTML = "fejl";
Det skal måske siges at document.getElementById (som er en del af den officielle W3C DOM standard), først blev indført i IE5. Så skal du have IE4 med kan man lave en lille funktion til at hente objekter med: function getObj(ID) { if (document.getElementById) {return document.getElementById(ID);} else if (document.all) {return document.all[ID]);} else {return null;} } eller noget i den stil. Så kunne du fx skrive: getObj("formFejl").innerHTML = "fejl";
Det skal så igen siges at innerHTML heller ikke virkede i IE4 (så vidt jeg kan huske), så i dette tilfælde giver det ikke rigtig mening. Men måske til en anden gang da ;-)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.