Javascript som inte gillar mozilla :((

Permalänk
Medlem

Javascript som inte gillar mozilla :((

Hej, jag har en liten javascript-kod som funkar bra i IE med inte i mozilla.
Det är en så här dropdown-meny, och när man väljer så ska värdet komma fram direkt.

<select class="val" name="siffror" onChange="Text.innerHTML = this.options[this.selectedIndex].value"> <option value="1">Test</option> <option value="2">test2</option> <option value="3">antal</option> </select> <br> <span id="Text"></span></td>

Permalänk

Därför att Mozilla inte stödjer innerhtml kanske..
en googling gav mig svar, kika den översta träffen, http://www.google.com/search?q=innerhtml%20mozilla&ie=UTF-8&o...

Permalänk
Medlem

ok.. det funka bra

<select class="val" name="select15" onChange="document.getElementById('Text').innerHTML = this.options[this.selectedIndex].value"> <option value="1">Test</option> <option value="2">test2</option> <option value="3">antal</option> </select> <br> <span id="Text"></span></td>

Permalänk
Medlem

Att använda ID.något är ju Internet Explorers påfund, likaså document.all['id'], det är document.getElementById('id'); som gäller för att det ska funka i alla webbläsare.

Visa signatur

"`F' is group reply. This is because `G' is for sort and `g' is for get new mail. And `G' is for sort because `sort' used be called `group', and anyway `S' is for save mailbox and `s' is for file message in folder, because `f' is group reply and `F' is group reply including original text."

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av K-Force
Att använda ID.något är ju Internet Explorers påfund, likaså document.all['id'], det är document.getElementById('id'); som gäller för att det ska funka i alla webbläsare.

Beror iofs hur man definierar "alla webbläsare", ett gäng netscape versioner, mac versioner av ie, vissa opera etc stöder det inte.
Sen kommer ju givetvis frågan upp om det spelar nån roll om NS4 inte stöder det, eller Konqueror, iCab, Safari eller whatever. Men document.getElementById är ok sålänge man slänger en if-sats runt det för att slippa scriptfel i dumma läsare.

Visa signatur

[ GA-P67A-UD4, i7 2600K @ 4.5GHz, Noctua NH-D14, 16GB XMS3, HD6970 2GB, 2x F120 120GB ]

Permalänk

för att helgardera sig så slänger man alltså in en koll som som sätter en variabel till rätt åtkomstmetod, så får man med både document.layers, document.id och getelementbyid..
typ
if (document.layers)
korv = document.layers
elseif (document.all)
.
.

korv.innerhtml = "ost"

Permalänk
Medlem

Jepp, tycker jag verkar bra. Kör man Lv1 DOM (document.getElementById), document.all och document.layers så har man garderat sig mot det mesta. Sedan en koll att inte lagrerna inte är nästlade för NS4 och att man inte blandar ihop window och document för mac läsare så är allt grönt
Eller så skickar man alla läsare som inte stödjer allt det senaste till en fy-skäms-på-dig sida så slipper man klura script i onödan.

Eller så har man inte javascript alls... vad säger jag... gah, börjar låta som Mirza

Visa signatur

[ GA-P67A-UD4, i7 2600K @ 4.5GHz, Noctua NH-D14, 16GB XMS3, HD6970 2GB, 2x F120 120GB ]

Permalänk
Medlem

Om vi säger såhär: Genom att använda document.getElementById() så följer man W3Cs DOM Level 1, vilket man inte gör om man använder document.all eller document.layers, vilket innebär att det ska funka i de som läser standarden någorlunda korrekt. (för närvarande enbart Mozilla-baserade och Opera till viss del).

Visa signatur

"`F' is group reply. This is because `G' is for sort and `g' is for get new mail. And `G' is for sort because `sort' used be called `group', and anyway `S' is for save mailbox and `s' is for file message in folder, because `f' is group reply and `F' is group reply including original text."