Hej Claus
Sports-MC / Claus Bernth wrote:
> Jeg har lavet nogle <DIV ID="linieX"> <(/DIV> tags i felterne hvor
> summerne skal skrives. I IE fungerer det fint bare man skriver:
> document['linieX'].innerHTML = '49,95';
Det er en lidt "grisset" non-standard måde du adresserer din DIV på, som
kun virker i IE4+. Jeg ville i stedet gøre som følger:
if(document.getElementById) // IE5+, N6+, Moz, Konqi, m.fl.
document.getElementById('linieX').innerHTML = '49,95';
else if(document.all) // IE4
document.all['linieX'].innerHTML = '49,95';
Jeg har her baseret mig på en "standard DOM-1" løsning, men dog tilføjet
kompatibilitet til IE4 også (IE understøtter først DOM-1 fra version 5
og frem). innerHTML er dog heller ikke helt en standard-ting, men dog
bredt understøttet.
Det virker dog stadig ikke i NN4.x da denne ikke understøtter DOM-1
heller og da du her desuden også kun kan udskifte indholdet dynamisk i
/positionerede/ DIVs. Det betyder at din DIV skal være et separat lag,
og det er nok ikke særlig praktisk i dette tilfælde. Men noget lignende
skulle virke:
<DIV id="linieX"
style="position: absolute; left:100px; top: 100px;">
if(document.getElementById) // IE5+, N6+, Moz, Konqi, m.fl.
document.getElementById('linieX').innerHTML = '49,95';
else if(document.all) // IE4
document.all['linieX'].innerHTML = '49,95';
else if(document.layers) { // NN4.x
document.layers['linieX'].document.open();
document.layers['linieX'].document.write('49,95');
document.layers['linieX'].document.close();
}
Men til dit formål synes jeg et "back to basic" princip må være det
rette for størst mulig browser-kompatibilitet. Derfor synes jeg du skal
satse på en "DOM-0 formular-baseret løsning". Den vil også virke i Opera
og endnu ældre versioner af NN og IE.
<FORM name="pageform">
<INPUT type="text" name="prisfelt" width=6 readonly>
</FORM>
document.pageform.prisfelt = '49,95';
Jeg har gjort feltet readonly så det kun kan opdateres fra Javascript.
Bemærk også at jeg her adresserer på en måde der ligner din oprindelige
som jeg kaldte "grisseri". Det er fordi at vi her holder os indenfor den
såkaldte "DOM-0" (dvs. kun adresserer formularer, billeder og links) og
har navngivet elementerne med name-attributten (ikke id-attributten).
Dette er næsten alle browsere der kan JavaScript kompatible med.
OBS! Det er kun under disse specielle forhold (DOM-0 og
name-attributten) man bør addresere elementer på siden uden brug af
getElementById(), all[] eller layers[].
Mvh. Stig
stig@rockland.dk
* Bedre (D)HTML ?! -->
http://www.rockland.dk/stig/upghtml.html *