Avatar billede kjeldsted Novice
23. august 2008 - 17:05 Der er 24 kommentarer og
1 løsning

Linjeskift i IE der ikke burde være der?

Hej Eksperter.

Jeg har umiddelbart lidt svært ved at forklare mit problem, men vil prøve:

Jeg har lavet et "expand" system til en række nyheder. Mit problem er så at når man vil have overskrifterne under katekorien væk igen fjerne IE ganske rigtigt indholdet men laver så et linjeskift der ikke skal være dér. Systemet virker i FF, Safari og Opera, men ikke i IE (andre browsere er ikke testet).

Hvis det vil hjælpe at se fejlen så gå ind på http://www.mj-design.dk/v2.0/. Det er oversigten i højre side hvor der er 3 måneder. Prøv at klikke to gane i IE og du vil se.

Koden er som følger, hvor det meste er lavet med en loop i PHP.

<script type="text/javascript">
function expand_groupe(id) {
var id2 = 'kalender_oversigt_' + id;
var now_indhold = document.getElementById(id2).innerHTML;
if(now_indhold=='')
    {
    document.getElementById(id2).innerHTML='<ul><li>Test 1</li><li> test 2</li></ul>';
    }
else
    {
    document.getElementById(id2).innerHTML='';
    }

}
</script>
<div id="news_text">
</div>
<div id="news_date">
<?php
$i=0;
do {
?>
    <ul style="margin-top:0px; margin-bottom:0px;">
        <li onClick="expand_groupe(<?=$i?>)"><?=$danish_months[$months[$i]].' ('.$years[$i].')'?></li>
    </ul>
    <ul style="margin-top:0px; margin-bottom:10px;">
            <span id="kalender_oversigt_<?=$i?>"></span>
    </ul>
<?
$i++;
} while($i<=$num_rows);
?>
</div>

Håber jeg kan få noget hjælp
Avatar billede w13 Novice
23. august 2008 - 17:23 #1
Du bør nok sætte undermenuerne ind i kildekoden manuelt og så bare skjule og vise dem. Så undgår du også innerHTML, der jo ikke er specielt validt:

<script type="text/javascript">
function expand_groupe(sID){
  o=document.getElementById(sID)
  o.style.display=(o.style.display!="block"?"block":"none");
}
</script>
<div id="news_text">
</div>
<div id="news_date">
<?php
$i=0;
do {
?>
    <ul style="margin-top:0;margin-bottom:0">
        <li onClick="expand_groupe(<?=$i?>)"><?=$danish_months[$months[$i]].' ('.$years[$i].')'?></li>
    </ul>
    <ul style="margin-top:0;margin-bottom:10px">
            <ul style="display:none" id="kalender_oversigt_<?=$i?>"><li>Test 1</li><li>Test 2</li></ul>
    </ul>
<?
$i++;
} while($i<=$num_rows);
?>
</div>
Avatar billede kjeldsted Novice
23. august 2008 - 17:30 #2
Hm. Det virker nu ikke helt. Nu sker der intet ved at trykke på måneden. IE's fejl besked skriver: "Et objekt er obligatorisk" på linjen:

o.style.display=(o.style.display!="block"?"block":"none");
Avatar billede w13 Novice
23. august 2008 - 17:33 #3
Det er rigtigt, o bliver ikke var'et:

<script type="text/javascript">
function expand_groupe(sID){
  var o=document.getElementById(sID);
  o.style.display=(o.style.display!="block"?"block":"none");
}
</script>
<div id="news_text">
</div>
<div id="news_date">
<?php
$i=0;
do {
?>
    <ul style="margin-top:0;margin-bottom:0">
        <li onClick="expand_groupe(<?=$i?>)"><?=$danish_months[$months[$i]].' ('.$years[$i].')'?></li>
    </ul>
    <ul style="margin-top:0;margin-bottom:10px">
            <ul style="display:none" id="kalender_oversigt_<?=$i?>"><li>Test 1</li><li>Test 2</li></ul>
    </ul>
<?
$i++;
} while($i<=$num_rows);
?>
</div>
Avatar billede kjeldsted Novice
23. august 2008 - 17:38 #4
Hjælper desværre ikke. Har også prøvet

function expand_groupe(sID){
  var o =  new Object();
  var o=document.getElementById(sID);
  o.style.display=(o.style.display!="block"?"block":"none");

Men stadig samme fejl.
Avatar billede w13 Novice
23. august 2008 - 17:42 #5
Du kan heller ikke var'e 2 gange på den samme variable. Men fejlen er selvfølgelig, at du kun overfører noget af id'et, det ser jeg nu. Ret til:

<script type="text/javascript">
function expand_groupe(sID){
  var o=document.getElementById("kalender_oversigt_"+sID);
  o.style.display=(o.style.display!="block"?"block":"none");
}
</script>
<div id="news_text">
</div>
<div id="news_date">
<?php
$i=0;
do {
?>
    <ul style="margin-top:0;margin-bottom:0">
        <li onClick="expand_groupe(<?=$i?>)"><?=$danish_months[$months[$i]].' ('.$years[$i].')'?></li>
    </ul>
    <ul style="margin-top:0;margin-bottom:10px">
            <ul style="display:none" id="kalender_oversigt_<?=$i?>"><li>Test 1</li><li>Test 2</li></ul>
    </ul>
<?
$i++;
} while($i<=$num_rows);
?>
</div>
Avatar billede kjeldsted Novice
23. august 2008 - 17:45 #6
Hov. Det skulle også kun have stået der én gang. Og er vist ikke helt vågen i dag... Men nu virker det. Mange, mange tak hjælpen.
Avatar billede w13 Novice
23. august 2008 - 17:45 #7
Og mange tak for point! :)
Avatar billede mclemens Nybegynder
24. august 2008 - 01:53 #8
innerhtml er ganske valid, hvis browseren understøtter det,
men er ikke en w3c standard ... men da det er en del af html5
http://www.w3.org/html/wg/html5/ - bliver det nok en standard i
mange browsere og dermed er tendensen til at være understøttet en del
højere (selvom det er understøttet og valid i mange browsere allerede idag).
Avatar billede w13 Novice
24. august 2008 - 12:18 #9
En af bagsiderne ved innerHTML ses tydeligt her i det mellemrum, der opstår, når innerHTML slettes.
Avatar billede olebole Juniormester
24. august 2008 - 22:12 #10
<ole>

mclemens >> Det er noget dobbelt vrøvl!

Der er intet, der hedder HTML5 - og der bliver måske aldrig noget, der kommer til at hedde sådan. Foreløbig er det blot en våd drøm hos en arbejdsgruppe under W3C, men dem har der været så mange af, uden de nogensinde er blevet til færdige rekomandationer.

Der er ingen standard eller rekommandation, hvor innerHTML er valid. Det fremgår tydeligt af din kommentar, du ikke ved, hvad ordet 'valid' betyder. Sætningen: "selvom det er understøttet og valid i mange browsere allerede idag" giver således ikke skygge af mening.

At din bil kan køre 180 km/t betyder ikke, at den hastighed er tilladt ... og den er heller ikke tilladt i din bil  ;o)

innerHTML er invalid! That's it 'n' that's that! Uanset, hvad dine drømme om en mulig, fjern fremtid måtte fortælle dig  =)

/mvh
</bole>
Avatar billede olebole Juniormester
24. august 2008 - 22:27 #11
- og hvis man har fulgt lidt med i WWW's udvikling, er det nok ikke overvejende sandsynligt, at HTML5 nogensinde bliver til noget. Store multinationale koncerner har bundet milliarder af dollars i XML og XHTML og indrettet hele teknologier på basis af XML og XHTML.

Mig bekendt er det meget langtfra tilfældet med HTML5, så mon ikke det igen er økonomien (og i dette tilfælde fornuften), der får lov til at sejre? For mig at se har de solgt hele idéen omkring integrationen af XML-baserede sprog - og muligheden for at implementere special-tags i et proprietært namespace på en fornuftig måde.

Det er altid velgørende med andre synspunkter - men HTML5 er ikke et sprog, jeg på nuværende tidspunkt finder det værd at bruge tid på ... men jeg vil naturligvis ikke blande mig i, hvad andre drømmer om  =)
Avatar billede mclemens Nybegynder
25. august 2008 - 01:13 #12
Ole >> Ja, hvis man ikke forstår ordenes betydning er det dobbelt vrøvl.

- Forudsat at det bliver til en w3 standard så er der noget der hedder HTML5
indenfor standarderne, der er noget der hedder HTML5 i dag, det er det som der
arbejdes på under arbejdsgruppen inde hos w3 ... for lige at vende din sætning.

At min bil kan køre 180 km/t betyder at den hastighed er understøttet og kan være
tilladt, forudsat selvfølgelig at jeg tager mine forholdsregler, i det tilfælde
skal jeg nok en smut forbi Jyllands ringen. Og hvad angår at det er understøttet
og tilladt at bruge innerHTML i nogle browsere, ja så er det skam korrekt - men
man bør huske at det ikke er en del af w3 standarder, så man bør igen ligeledes
tage sine forholdregler. Tager man sine w3 briller på kan man selvfølgelig sige
at det ikke er valid i henhold til w3's standarder - det ændrer dog ikke på at
det er tilladt indenfor den enkelte browser. Nogle css regler er jo også tilladte
i nogle browsere selvom de giver en warning hos w3 da de ikke er en del af w3's
css standarder. Læs evt. kommentarer fra en anden vinkel end din foretrukne Ole.

Resten er der for så vidt ikke meget at kommentere om andet end du ikke har
forstået min kommentar og lægger en betydning i mit indlæg som ikke er der.
- Bliver det standardiseret hos w3 er det valid iflg. w3 at bruge det.
- Gør det ikke, ja så holder min kommentar om validiteten stadig, det
er tilladt i de browsere der understøtter det uanset hvad w3 siger.

Nej, jeg drømmer ikke om HTML5,
men hvis nu det er din tro,
så må troen være med dig.

/ valid = Gyldig ... men gyldighed kan bedømmes fra flere vinkler.
Avatar billede olebole Juniormester
25. august 2008 - 01:19 #13
Du har en fuldstændig proprietær opfattelse af, hvad ordet 'valid' betyder i kodesammenhæng!

Valid = Gyldig i forhold til gældende standarder

Ellers er al kode, der virker jo valid - og så giver det vel ikke længere mening at tale om valid kode  =)
Avatar billede olebole Juniormester
25. august 2008 - 01:25 #14
Du har heller ikke forstået CSS standarden eller hvad 'warning' betyder i W3C's validator. CSS standarden foreskriver eksplicit, at hvis en browser ikke forstår en property, skal denne blot springes over under parsing.

Derfor udløser den slags ikke en error, men en warning - der er ikke tale om en overtrædelse af CSS standarden.

Den form for 'overspring' er bare ikke en del af W3C's DOM, hvorfor sammenligningen ikke holder.

Valid kode er valid kode - og det begreb har jeg ikke hørt skulle have ændret sig på det seneste  =)
Avatar billede mclemens Nybegynder
25. august 2008 - 09:13 #15
... Ligeledes bør man ved scripting spørge på om browseren understøtter det
ønskede, hvis ikke, så bør man få den til at springe det over, lidt ligesom css.
- Den del burde være forståeligt når man anvender ikke standardiserede script metoder.

Jeg har udmærket forståelse for css standarder og hvad en warning betyder - jeg har
selv gentagne gange sagt i css spørgsmål, at en warning ikke er en fejl og derfor
bør man ikke bekymre sig om det (forudsat at det selvfølgelig ikke er en væsentlig
designmæssig css påvirkning, der gør at andre browsere ser helt elendigt ud).

Måske har du endnu ikke forstået at min kommentar drejede sig om brugen af ordet
valid, der får det til at lyde som om at det er fuldstændigt invalid at bruge
det - begyndere der kommer ind og læser det tænker ikke nødvendigvis over at
det kun er invalid i henhold til at det ikke er optaget i standarderne.

... Men nu har du brugt 4 indlæg mere på at kommentere ordet valid og har givet
udtryk for din mening - jeg forventer så, at du vil tale positivt for innerHTML's
validitet hvis HTML5 bliver en standard, gør du ikke ja så hmm, ha' en dag =)
Avatar billede olebole Juniormester
25. august 2008 - 12:23 #16
Du er da helt utrolig!

Jo, jeg forstår udmærket - i modsætning til dig selv - hvad du skriver. Ydermere har du endnu ikke fattet (eller måske ønsket at fatte), hvad det er, jeg skriver om innerHTML. Det kan jo kun undre, da jeg gang på gang har skrevet lange indlæg om emnet her på sitet - og ovenikøbet skrevet en artikel om det!

Hvis du ikke selv har læst den, så er den her:
    http://www.dengodekode.dk/artikler/DOM/no_innerhtml.php

- og hvis du allerede har læst den, så bed én, der kan læse, om at læse den op og forklare dens indhold for dig!

Nej, det kunne da aldrig falde mig ind at være så stupid at begynde at tale positivt om innerHTML, hvis den bliver en del af HTML5. Min pointe er jo netop, at innerHTML - udover at være invalid - er hamrende uhensigtsmæssig at bruge. Det vil jo ikke ændre sig, hvis den bliver del af HTML5.

Naturligvis står jeg ved mine meninger - uagtet, property'en skulle blive optaget i HTML5 ... på fuldstændig samme måde, som jeg jævnligt kritiserer de bestående standarder og deres mangler!

Til gengæld siger din antagelse en masse om dit eget forhold til webkode - men du får altså ikke mig med på den 'vendekåbevogn'. Jeg mener, hvad jeg siger - og siger, hvad jeg mener ... uanset, hvad andre måtte mene!

"... Ligeledes bør man ved scripting spørge på om browseren understøtter det
ønskede, hvis ikke, så bør man få den til at springe det over, lidt ligesom css.
- Den del burde være forståeligt når man anvender ikke standardiserede script metoder." >> Jamen, det er jo ikke 'ligeledes'! Du taler om ting, der ikke har det fjerneste med hinanden at gøre.

innerHTML er _absolut_ invalid - og det ville være en katastrofe, hvis en begynder udi webkode fejlagtigt skulle tillægge dine vrøvlerier nogen somhelst betydning!
Avatar billede mclemens Nybegynder
25. august 2008 - 13:06 #17
"Naturligvis står jeg ved mine meninger - uagtet, property'en skulle blive optaget i HTML5 ... på fuldstændig samme måde, som jeg jævnligt kritiserer de bestående standarder og deres mangler!"

D.v.s. at det ikke er fordi den er invalid i henhold til w3 at du har noget imod den, men fordi at den ikke er hensigtsmæssig. Med andre ord, hvis den var valid ville du fremhæve at "den er valid men ikke hensigtsmæssig" ... eller ville du blot fremhæve at "den ikke er hensigtsmæssig" ... jeg formoder så først nævnte, ellers giver det jo ikke megen værdi at degradere den under henvisning til dens invaliditet i henhold til standarderne idag.

Jeg hopper skam ikke med på vendekåbe vognen, og netop derfor henlægger jeg ikke 100% af mine holdninger til om en browser proprietær javascript funktion er en del af standarden eller ej - men mere om den kan være hensigtsmæssig eller ej. I nogle tilfælde kan innerHTML være hensigtsmæssig, men jeg vil betegne langt størstedelen som uhensigtsmæssig p.t.. Om den så er valid eller invalid i henhold til standarderne har ikke spor at gøre med min holdning - jeg hæfter mig ved understøttelse og effektivitet.

Jeg har skam læst din artikel og er egentlig ikke uenig i den, måske er årsagen til at du ikke forstår mig grundet mit manglende brug af udråbstegn eller manglende effekt af at sætte andre i bås ...

Ole du anvender for mig at se innerHTML's invaliditet i henhold til standarderne hos
w3 til at degradere dens evne til at indsætte html hurtigt i elementer i stedet for at argumentere (evt. via. at linke til din artikel) om uhensigtsmæssighederne i brugen af innerHTML. Belyst af:

"Naturligvis står jeg ved mine meninger - uagtet, property'en skulle blive optaget i HTML5 ... på fuldstændig samme måde, som jeg jævnligt kritiserer de bestående standarder og deres mangler!"

fremgår det dog tydeligt at du ikke lægger validitet af en standard megen vægt, det kan dog så vise sig som en vendekåbe taktik at anvende manglende validitet til at tale ned om en ting, når man ikke tillægger validiteten hos w3 alfa og omega betydning.

Men det kan da også ske at jeg forstår dig helt forkert
og det ikke har noget med validiteten hos w3 at gøre
- selvom du nu godt nok hæfter dig ved at den mangler.


Vi når nok ikke videre i denne debat andet end at være enige om at:
- innerHTML er understøttet og tilladt at bruge i IE, FF, Opera m.v.
- innerHTML er ikke en hensigtsmæssig måde at håndtere elementudskiftning på.
- innerHTML er p.t. ikke valid iflg. w3 (læs: ikke en del af standarderne).

... Hvor jeg dog føler at det du siger er at man ikke må benytte innerHTML fordi
den ikke er i standarderne jvf. punkt 3, mens jeg forholder mig til punkt 2 i
stedet - det er dog rart at se, at du vil tillægge punkt 2 mere værdi hvis HTML5 bliver en standard :)
Avatar billede olebole Juniormester
25. august 2008 - 23:29 #18
"D.v.s. at det ikke er fordi den er invalid [...]" >> Da du ikke synes begavet nok til at lade mine udtalelser forblive uforvansket, gider jeg ikke spilde min sparsomme tid på dig!

Det er så eksorbitant veldokumenteret her i E's tråde, hvad jeg mener om dette emne, at det burde være højtlæsning for pygmæer at ekstrahere betydningen. Få nogen til at hjælpe dig ... jeg orker ikke længere!
Avatar billede mclemens Nybegynder
25. august 2008 - 23:42 #19
Jamen, det var da en konkret udmelding. Og så længe du ved hvad
du selv mener omkring innerHTML, så er alt jo iordren !!!111one

Og nej, jeg forvansker skam ikke dine udtalelser jeg belyste dem
blot, ligesom du forsøgte på at belyse min manglende forståelse.

- Til dels må jeg give Stich ret, det handler om dine holdninger og
ikke standarder, medmindre selvfølgelig standarden følger holdningen.
Avatar billede mclemens Nybegynder
25. august 2008 - 23:43 #20
iordren=iorden
Avatar billede olebole Juniormester
26. august 2008 - 00:00 #21
Du forklarer, hvad jeg mener med en udtalelse, du tydeligvis ikke forstår ... det har da intet med en 'belysning' at gøre.

Du fatter ikke en bjælde af mine holdninger omkring innerHTML - eller argumenterne for dem.

Kommentaren:

"Belyst af:
[...]
"fremgår det dog tydeligt at du ikke lægger validitet af en standard megen vægt, det kan dog så vise sig som en vendekåbe taktik at anvende manglende validitet til at tale ned om en ting, når man ikke tillægger validiteten hos w3 alfa og omega betydning."

- er det rene og skære vås! Alle andre kodere som sagt har en væsentlig anden opfattelse af ordet 'validitet', end du har:

W3C og ECMA sætter standarderne for webkode. Skal en kode være valid, skal den overholde disse standarder.

Længere er den ikke!
Avatar billede olebole Juniormester
26. august 2008 - 00:03 #22
At du må give stich ret, er nok ikke lige noget at reklamere med. Det var den sociopatiske bruger, Admin blev nødt til at stoppe, da han havde klistret sit minisite til med ren og skær flaming af min person. Næ, stich's problem var ikke mine holdninger, men min person. Fint selskab, du søger!  ;o)
Avatar billede mclemens Nybegynder
26. august 2008 - 00:18 #23
Du kritisere den manglende validitet, du hævder den er vigtig
og alligevel hæfter du dig ved at du stadig vil tale ned om
den property såfremt den var valid, ergo handler det ikke
om hvorvidt den er invalid. Sådan læser jeg din holdning,
og du kan ikke ændrer måden jeg læser din holdning på.

- Jeg føler du skriver det ret tydeligt i teksten, men
føler at du ikke vil acceptere faktummet at det ikke
er den manglende validitet som der trykker i skoen.

Jeg kender ikke Stich udover at han mente du fokuserede
på manglende standard ud fra din egen holdning - i dette
indlæg føler jeg blot det slået fast at det forholder
sig således. Derudover er du ganske uovertruffen i dine
forsøg med at sætte folk i bås, jeg lader andre læsere
forholde sig til dine udtalelser selv, jeg hæfter mig ved:

"Nej, det kunne da aldrig falde mig ind at være så stupid at begynde at tale positivt om innerHTML, hvis den bliver en del af HTML5. Min pointe er jo netop, at innerHTML - udover at være invalid - er hamrende uhensigtsmæssig at bruge. Det vil jo ikke ændre sig, hvis den bliver del af HTML5."

... samt at du konstant henfalder dig til at anvende manglende
validitet som skyts. - Om tingen så bliver valid er fuldstændig
ligegyldig, så længe den ikke er kan det bruges i argumentationerne! ;o)

... Og så er Stich konti vist stadig her, men jeres dybere forhold
til tidligere tråde kommer ikke mig ved Ole, men du kan jo altid
tale med admin hvis Stich burde være blevet stoppet/banned ...
http://www.eksperten.dk/bruger.phtml?navn=stich

- Jeg troede egentlig han blev træt af eksperten
efter denne tråd, men jeg misforstod han nok blot.
http://www.eksperten.dk/spm/711580
Avatar billede olebole Juniormester
26. august 2008 - 01:54 #24
Da du ikke kan læse, hvad jeg skriver - eller i hvertfald undlader det - må jeg hermed opgive debatten. Det er jo rent 'Goddag mand - økseskaft'!
Avatar billede mclemens Nybegynder
26. august 2008 - 09:59 #25
Ja, den følelse har jeg haft ligesiden dit første indlæg i tråden som udelukkende gik ud på at fornedre min brug af ordet valid ,fordi jeg brugte den uden for den normale kodemæssige ordbrug - til og med notere jeg i min kommentar, at det ikke var en w3 standard.

Det var ikke nok til at undgå din irettesættelse, om at det var forkert ordbrug, og at jeg så nok ikke vidste, hvad ordet valid betyder.

Vælger jeg at bruge ordet ud fra dets reele betydning, ja så gør jeg det, vælger jeg at bruge det ud fra den kodemæssige betydning, ja så gør jeg det.

- Men at stille sig på bagbenene og påberåbe mig properties invaliditet i
forhold til w3 samt manglende betydning af validitet såfremt properties optages
og fastlæggelse om hvorvidt en property eller en arbejdsgruppes oplæg hos
w3 nogensinde bliver en del af w3, ja det må jeg nok overlade til dig.
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester