|
| style.visibility vs. innerHTML Fra : Morten Abildgaard |
Dato : 26-08-02 17:00 |
|
Hejsa,
Jeg fundere lidt over hvad der mon er mest browserkompatibelt når jeg fx.
vil ændre en tekst i en <div>.
Jeg ved at Dreamweaver bare sætter visibility'en med
[element].style.visibility=['hidden'|'visible']; Og det er jo ikke så
tosset, da det virker fint og flot i både IE5+ og Moz.
Men hvad om man bare bruger et statisk-vist [element] og sætter indholdet
med [element].innerHTML = 'en ny tekst'?
Jeg ved godt, at det er lige så kritisk at lokalisere elementet først, men
mit spørgsmål er (igen) om [element].style.visibiliy er mere sikkert end
[element].innerHTML.
Nogen kommentare?
/morten
| |
Hintzmann (27-08-2002)
| Kommentar Fra : Hintzmann |
Dato : 27-08-02 08:47 |
|
"Morten Abildgaard" <none@all.dk> wrote in message
news:Xns9276B702957A8nonealldk@212.242.40.196...
> Hejsa,
>
> Jeg fundere lidt over hvad der mon er mest browserkompatibelt når jeg fx.
> vil ændre en tekst i en <div>.
> Jeg ved at Dreamweaver bare sætter visibility'en med
> [element].style.visibility=['hidden'|'visible']; Og det er jo ikke så
> tosset, da det virker fint og flot i både IE5+ og Moz.
> Men hvad om man bare bruger et statisk-vist [element] og sætter indholdet
> med [element].innerHTML = 'en ny tekst'?
> Jeg ved godt, at det er lige så kritisk at lokalisere elementet først, men
> mit spørgsmål er (igen) om [element].style.visibiliy er mere sikkert end
> [element].innerHTML.
> Nogen kommentare?
Hej Morten
Fordelen ved at style et element med visibility er at elementet(/indholdet)
stadig kan ses selvom klienten ikke har javascript (slået til).
Der er nemlig en del der ikke har javascript slået til. (jeg vil undlade at
henvise til nogen statistik )
D.v.s at _alle_ browsere (browsere fra præ-mosaic tiden og nye pocketPC/PDA)
kan se dit indhold. At en klient ikke gå glip af noget indhold, syntes jeg
klart er en fordel.
Med innerHTML kræver det javascript for at se indholdet.
Dit spøgsmålet gik kun på browserkompatibelt - jeg syntes stadig visibility
er bedst - men angående innerHTML...
Så hvis du tænker bagud-kompatibilitet så er innerHTML fint da det også kan
få IE4+ med. InnerHTML er en MS udvidelse og ikke en del af DOM API'en, men
understøttes af IE4+ og Moz/Netscape6+, Konqueror 2.2.
Hvis du tænker fremad-kompatibilitet - og det er jo kun en gisning vi kender
jo ikke fremtiden - så vil jeg tro at document.createElement() og
document.createTextNode() er mere kompatibel. De understøttes af MSIE5+,
Mozilla/Netscape6+, Konqueror 2.2.
Browserne producenterne bevæger sig mere og mere hen imod w3c-standarderne.
F.eks. kommer Opera med en ny version 7 browser (Jeg har hørt før jul). De
satser meget på w3c-standarderne, så jeg ved ikke om de vil "adoptere"
innerHTML, men de vil helt klart understøtte document.createElement() og
document.createTextNode().
Alt i alt, vil jeg anbefale en løsning der ikke er krævet javascript, såsom
visibility/display.
Mvh Hintzmann
| |
Morten Abildgaard (27-08-2002)
| Kommentar Fra : Morten Abildgaard |
Dato : 27-08-02 23:56 |
|
Hintzmann skrev i news:akfapm$4qp$1@sunsite.dk:
[klip]
> Browserne producenterne bevæger sig mere og mere hen imod
> w3c-standarderne. F.eks. kommer Opera med en ny version 7 browser (Jeg
> har hørt før jul). De satser meget på w3c-standarderne, så jeg ved
> ikke om de vil "adoptere" innerHTML, men de vil helt klart understøtte
> document.createElement() og document.createTextNode().
Tak for et fyldestgørende svar.
Jeg kom dog til at undre mig lidt: Siden hvornår har W3C varetaget
standarder for clientside-scripting?
Jeg troede det var
< http://developer.netscape.com/docs/manuals/javascript.html>
- som overholder/går ud fra ECMA-262-standarden på -
< http://www.ecma.ch/ecma1/STAND/ECMA-262.HTM>
Tager jeg fejl?
--
kosmisk hygge fra vbro
/morten
| |
Hintzmann (28-08-2002)
| Kommentar Fra : Hintzmann |
Dato : 28-08-02 09:46 |
|
> > Browserne producenterne bevæger sig mere og mere hen imod
> > w3c-standarderne. F.eks. kommer Opera med en ny version 7 browser (Jeg
> > har hørt før jul). De satser meget på w3c-standarderne, så jeg ved
> > ikke om de vil "adoptere" innerHTML, men de vil helt klart understøtte
> > document.createElement() og document.createTextNode().
>
> Tak for et fyldestgørende svar.
> Jeg kom dog til at undre mig lidt: Siden hvornår har W3C varetaget
> standarder for clientside-scripting?
> Jeg troede det var
> < http://developer.netscape.com/docs/manuals/javascript.html>
> - som overholder/går ud fra ECMA-262-standarden på -
> < http://www.ecma.ch/ecma1/STAND/ECMA-262.HTM>
> Tager jeg fejl?
Nej, du har ret. Det er ikke W3C der står for standard
clientside-scripting.
Men... min point var at de bliver mere og mere standardniseret.
<udenomsnak>
Min tankegang lå på DOM'en og ikke clientside-scripting. Rodet tankegang
Det jeg tænkte på var at innerHTML og DOM'en ikke har det så godt sammen.
Når man benytter innerHTML bliver indholdet ikke direkte tilgængelig i node
træet. Browseren skal ha lidt tid til at konvertere stringen til noder.
Hvorimod document.createElement() er tilgængelig med det samme.
Og W3C varetager DOM'en. http://www.w3.org/DOM/DOMTR
Min tankegang kom da hen på DOM'en da jeg skrev den sætning.
Og så kom der til at stå "De satser meget på w3c-standarderne, "
der skulle selvfølgelig have stået "De satser meget på standarderne, "
Sorry :'-)
</udenomsnak>
Men håber at du kunne bruge mit synspunkt alligevel
Hintzmann
--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP ???
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
Asbjørn Sloth Tønnes~ (27-08-2002)
| Kommentar Fra : Asbjørn Sloth Tønnes~ |
Dato : 27-08-02 14:27 |
|
Hej Morten
Morten skrev
> Jeg fundere lidt over hvad der mon er mest browserkompatibelt når jeg fx.
> vil ændre en tekst i en <div>.
> Jeg ved at Dreamweaver bare sætter visibility'en med
> [element].style.visibility=['hidden'|'visible']; Og det er jo ikke så
> tosset, da det virker fint og flot i både IE5+ og Moz.
> Men hvad om man bare bruger et statisk-vist [element] og sætter indholdet
> med [element].innerHTML = 'en ny tekst'?
> Jeg ved godt, at det er lige så kritisk at lokalisere elementet først, men
> mit spørgsmål er (igen) om [element].style.visibiliy er mere sikkert end
> [element].innerHTML.
Om at skjule elementer, se
http://www.ildstorm.dk/showartikel.php?id=81
..:: Testkoden ::.
<html>
<head>
<title>Side 1</title>
</head>
<body>
<div id="a">A</div>
<div id="b">B</div>
<hr>
<a href="#"
onclick="getElementById('a').style.display='block';document.all.a.style.visi
bility='visible';">vis A</a><br>
<a href="#"
onclick="getElementById('a').style.display='none';document.all.a.style.visib
ility='hidden';">skjul A</a><br><br>
<a href="#"
onclick="getElementById('b').style.display='block';document.all.b.style.visi
bility='visible';">vis B</a><br>
<a href="#"
onclick="getElementById('b').style.display='none';document.all.b.style.visib
ility='hidden';">skjul B</a>
<hr>
<a href="#" onclick="getElementById('a').innerHTML='A A';">Skriv "A A" i
a</a><br>
<a href="#" onclick="getElementById('a').innerHTML='A B';">Skriv "A B" i
a</a><br><br>
<a href="#" onclick="getElementById('b').innerHTML='B A';">Skriv "B A" i
a</a><br>
<a href="#" onclick="getElementById('b').innerHTML='B B';">Skriv "B B" i
a</a>
</body>
</html>
..:: Testen ::.
Testen blev lavet i Moz 1.0, IE 6.0 DA, Opera 6.01 alle på Win XP pro da
Testen bestod i at jeg testede hvorvidt at CSS egenskaberne visibility og
display og JavaScript-egenskaben innerHTML virkede/kunne ændres
..:: Testresultaterne ::.
Alt virkede i IE og Moz, men innerHTML og display virkede ikke i Opera,
hvilket bevirker at du godt kan skjule et 1 objekt og vise et andet, men det
skjulte objekt vil stadig optage plads på siden
Asbjørn
----------------------------------
Jeg er 15 år og søger praktikplads i uge 43. Jeg kan
(X)HTML, CSS, Javascript, PHP, ASP, SQL, Visual Basic 6, XML,
XSLT, SVG m.m. asbjorn@caduceus.dk
Københavns området, da jeg bor i Brønshøj
| |
Morten Abildgaard (27-08-2002)
| Kommentar Fra : Morten Abildgaard |
Dato : 27-08-02 23:41 |
|
Asbjørn Sloth Tønnesen skrev i
news:67La9.23872$ww6.2395084@news010.worldonline.dk:
[klip]
> Om at skjule elementer, se
> http://www.ildstorm.dk/showartikel.php?id=81
>
Hvad er det for en omgang fis, at spise mig af med :(
| |
Hintzmann (28-08-2002)
| Kommentar Fra : Hintzmann |
Dato : 28-08-02 10:23 |
|
Morten Abildgaard wrote in dk.edb.internet.webdesign.clientside:
> Asbjørn Sloth Tønnesen skrev i
> news:67La9.23872$ww6.2395084@news010.worldonline.dk:
> [klip]
> > Om at skjule elementer, se
> > http://www.ildstorm.dk/showartikel.php?id=81
> >
>
> Hvad er det for en omgang fis, at spise mig af med :(
Tag det roligt ... han er kun 15 og har ligesom mig vist
interesse i dit emne.
Jeg syntes godt du kunne belønne hans iver (testen), med at svare
pænt til ham, at du ikke fandt linket brugbart.
Hintzmann
--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP ???
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
Morten Abildgaard (28-08-2002)
| Kommentar Fra : Morten Abildgaard |
Dato : 28-08-02 12:20 |
|
Hintzmann skrev i news:aki4om$i6b$1@sunsite.dk:
> Tag det roligt ... han er kun 15 og har ligesom mig vist
> interesse i dit emne.
>
> Jeg syntes godt du kunne belønne hans iver (testen), med at svare
> pænt til ham, at du ikke fandt linket brugbart.
>
Ja ok, undskyld, min fejl. Eller for at gøre en kort historie lang:
Det løb lige af med mig. Jeg troede bare, at jeg havde formuleret mig
utvetydigt, og blev lidt irriteret over misforståelsen.
Men da det kun er afsenderen (mig, i dette tilfælde) som kan lave fejl i
kommunikation, er det jo også mig der må tage ansvar for den dårlige
retorik.
kosmisk hyggge
/morten
| |
Hintzmann (28-08-2002)
| Kommentar Fra : Hintzmann |
Dato : 28-08-02 12:44 |
|
> Ja ok
Fint så er der ro og fred igen i lille Nyhedsrup
| |
Asbjørn Sloth Tønnes~ (28-08-2002)
| Kommentar Fra : Asbjørn Sloth Tønnes~ |
Dato : 28-08-02 10:34 |
|
"Morten Abildgaard" <none@all.dk> skrev i en meddelelse
news:Xns92786DC95BD7nonealldk@212.242.40.196...
> Asbjørn Sloth Tønnesen skrev i
> news:67La9.23872$ww6.2395084@news010.worldonline.dk:
> [klip]
> > Om at skjule elementer, se
> > http://www.ildstorm.dk/showartikel.php?id=81
> >
>
> Hvad er det for en omgang fis, at spise mig af med :(
Det eneste jeg ville med linket var at gøre dig opmærksom på at du med
display kunne undgå at elementet ville fylde op på siden, da visibility bare
gør elementet usynligt den fjerner det ikke
Asbjørn
----------------------------------
Jeg er 15 år og søger praktikplads i uge 43. Jeg kan
(X)HTML, CSS, Javascript, PHP, ASP, SQL, Visual Basic 6, XML,
XSLT, SVG m.m. asbjorn@caduceus.dk
Københavns området, da jeg bor i Brønshøj
| |
Morten Abildgaard (28-08-2002)
| Kommentar Fra : Morten Abildgaard |
Dato : 28-08-02 12:30 |
|
Asbjørn Sloth Tønnesen skrev i
news:_N0b9.31755$ww6.2561106@news010.worldonline.dk:
> Det eneste jeg ville med linket var at gøre dig opmærksom på at du med
> display kunne undgå at elementet ville fylde op på siden, da
> visibility bare gør elementet usynligt den fjerner det ikke
>
Jeg takker for linket.
Imidlertid var det ikke metoderne visibility versus display jeg ønskede
informationer om, men informationer om browser-kompatibilitet ved metoderne
style vs. innerHTML.
--
kosmisk hygge
/morten
| |
Asbjørn Sloth Tønnes~ (28-08-2002)
| Kommentar Fra : Asbjørn Sloth Tønnes~ |
Dato : 28-08-02 12:57 |
|
"Morten Abildgaard" <none@all.dk> skrev i en meddelelse
news:Xns9278894BC6D25nonealldk@212.242.40.196...
> Asbjørn Sloth Tønnesen skrev i
> news:_N0b9.31755$ww6.2561106@news010.worldonline.dk:
> > Det eneste jeg ville med linket var at gøre dig opmærksom på at du med
> > display kunne undgå at elementet ville fylde op på siden, da
> > visibility bare gør elementet usynligt den fjerner det ikke
> >
>
> Jeg takker for linket.
> Imidlertid var det ikke metoderne visibility versus display jeg ønskede
> informationer om, men informationer om browser-kompatibilitet ved
metoderne
> style vs. innerHTML.
Jeg testede også med innerHTML som jo så ikke virker i
Opera 6 men i både Moz og IE
Browser-kompatibilitet top 3 ved test af style.visibility, style.display og
innerHTML i IE, Moz og Opera
1. style.visibility (virkede i alle testede browsere)
2./3. style.display (virkede kun i IE og Mozilla)
2./3. innerHTML (virkede kun i IE og Mozilla)
Asbjørn Sloth Tønnesen
---------------
Jeg er 15 år og søger praktikplads i uge 43. Jeg kan
(X)HTML, CSS, Javascript, PHP, ASP, SQL, Visual Basic 6, XML,
XSLT, SVG m.m. - asbjorn@caduceus.dk - Brønshøj, KBH
| |
Morten Abildgaard (28-08-2002)
| Kommentar Fra : Morten Abildgaard |
Dato : 28-08-02 14:38 |
|
Asbjørn Sloth Tønnesen skrev i
news:iU2b9.32303$ww6.2575449@news010.worldonline.dk:
> Jeg testede også med innerHTML som jo så ikke virker i
> Opera 6 men i både Moz og IE
> Browser-kompatibilitet top 3 ved test af style.visibility,
> style.display og innerHTML i IE, Moz og Opera
>
> 1. style.visibility (virkede i alle testede browsere)
> 2./3. style.display (virkede kun i IE og Mozilla)
> 2./3. innerHTML (virkede kun i IE og Mozilla)
>
Ja, det kan godt være at Opera er kendt for at holde sig til standarderne,
men så meget desto mere var det (og er stadigt) også en skuffelse for mig,
at den ikke understøtter style.display og innerHTML, da det er dem jeg
oftest vælger at bruge til layout af diverse menuer.
Man kan selvfølgeligt komme langt med <div style="position:absolute">, men
som linket du postede tidligere :) viste (mig), så er det langt fra altid
en ideel løsning.
Tak for indsatsen!
--
kosmisk hygge
/morten
| |
Lasse Reichstein Nie~ (28-08-2002)
| Kommentar Fra : Lasse Reichstein Nie~ |
Dato : 28-08-02 15:38 |
|
Morten Abildgaard <none@all.dk> writes:
> Ja, det kan godt være at Opera er kendt for at holde sig til standarderne,
> men så meget desto mere var det (og er stadigt) også en skuffelse for mig,
> at den ikke understøtter style.display og innerHTML, da det er dem jeg
> oftest vælger at bruge til layout af diverse menuer.
At style.display ikke er skrivbar i Opera, er et problem. Det vil
forhåbentligt gå over når Opera 7 kommer (de siger "snart" uden at
sige hvad det betyder :).
Jeg synes dog ikke at en ikke-standardiseret ting som innerHTML har
noget at gøre i Opera, men det er nok fordi jeg synes den er
unødvendig og passer dårligt ind i DOM'en. Jeg ville langt hellere se
en funktion der hed parseHTML, eller endda parseXML, som kunne
konvertere fra HTML til parsetræ, end have en pseudo-attribut som
innerHTML.
Jeg fandt lidt diskussion om innerHTML på
<URL: http://www.developer-x.com/content/innerhtml/>.
Et andet sted så jeg nogen foreslå at gemme sine strukturerede data i
HTML-dokumentet (evt. med display:none) og så bruge cloneNode til at
lave kopier med, istedet for at gemme det i en streng og bruge
innerHTML.
> Man kan selvfølgeligt komme langt med <div style="position:absolute">, men
> som linket du postede tidligere :) viste (mig), så er det langt fra altid
> en ideel løsning.
Hvis nu IE implementerede position:fixed, så ville mange ting være nemmere.
/L
--
Lasse Reichstein Nielsen - lrn@hotpop.com
'Faith without judgement merely degrades the spirit divine.'
| |
Chrisser (28-08-2002)
| Kommentar Fra : Chrisser |
Dato : 28-08-02 10:34 |
|
"Morten Abildgaard" <none@all.dk> skrev i en meddelelse
news:Xns92786DC95BD7nonealldk@212.242.40.196...
> Asbjørn Sloth Tønnesen skrev i
> news:67La9.23872$ww6.2395084@news010.worldonline.dk:
> [klip]
> > Om at skjule elementer, se
> > http://www.ildstorm.dk/showartikel.php?id=81
> >
>
> Hvad er det for en omgang fis, at spise mig af med :(
- jeg synes nu også at det er et uforskammet svar, du beder folk om at komme
med deres mening om emnet "style.visibility vs. innerHTML", og når du så får
den, oven i købet med et link til der henviser nopget om emnet, så er det
ikke godt nok ???
| |
Morten Abildgaard (28-08-2002)
| Kommentar Fra : Morten Abildgaard |
Dato : 28-08-02 12:31 |
|
Chrisser skrev i news:aki5h5$ose$1@sunsite.dk:
> - jeg synes nu også at det er et uforskammet svar, du beder folk om at
> komme med deres mening om emnet "style.visibility vs. innerHTML", og
> når du så får den, oven i købet med et link til der henviser nopget om
> emnet, så er det ikke godt nok ???
>
læs evt. mine svar til Hintzmann og Asbjørn Sloth Tønnesen
/morten
| |
|
|