Avatar billede jgp Nybegynder
02. december 2003 - 14:17 Der er 4 kommentarer og
1 løsning

innerHTML vil selv lave <table> og <tbody> tags!?

Hej,

Jeg har set meget i de år jeg har lavet javascript, men den her tager kagen. Følg med:

Jeg har følgende ASP side:
<html>
<head>
<script type="text/javascript">
function writeAccessTable() {
  var accessTable = document.getElementById("AccessTable");
  accessTable.innerHTML = "";
  accessTable.innerHTML = '<table>';
  alert(accessTable.innerHTML);
}
</script>
</head>
<body onload="writeAccessTable();">
<div id="AccessTable"></div>
</body>
</html>

Og her kommer højdepunktet, den alerter: "<TABLE><TBODY></TBODY></TABLE>"

Det kalder jeg service, men hvis jeg nu ikke vil have den til at indsætte alt muligt lort, hvad gør jeg så? Er det en ny feature i IE 6?

Hvis jeg bruger:
"accessTable.innerHTML = '<TABLE><TBODY></TBODY></TABLE>';"
undlader den at lave nogle ændringer..

Nogen der har forklaringen på hvad der sker her?

Mvh
JGP
Avatar billede roenving Novice
02. december 2003 - 14:24 #1
-- for det første, fordi du bruger en browser, som ikke vil acceptere ufærdige tags, hvilket jo egentlig er meget rimeligt ...

-- at IE så også mener at <table>s er ufærdige uden <tbody>s kan man jo så undre sig over (Mozilla svarede <table></rable> !-)
Avatar billede jgp Nybegynder
02. december 2003 - 14:34 #2
Tak for svaret. Men det er da noget nyt, at javascript er begyndt på at forsøge at rette op på ufærdige tags. Er det sket i IE 6?

Lyder også hygsomt med mozilla der...
Avatar billede roenving Novice
02. december 2003 - 15:11 #3
Den rabler heldigvis ikke så meget som jeg gør !-)

-- og egentlig tror jeg slet ikke det er javascript, som gør det, men selve browserens objekt-model kræver, at tags som _skal_ lukkes bliver lukket, ellers er der jo rod i modellen, og så kan hverken den eller nogen anden finde  rundt !-)

-- og så må du vel hellere få et svar, velbekomme '-)
Avatar billede jgp Nybegynder
02. december 2003 - 15:17 #4
Jo Roenving, men i tilfælde hvor elementet i forvejen indeholder et slut tag, indsætter den alligevel de ekstra slut tag ved innerHTML'en.

Nå, men de får ret og jeg koder som browseren gerne vil have det.

Tak for svaret :-)
Mvh
JGP
Avatar billede roenving Novice
02. december 2003 - 15:33 #5
-- tak for points ;~}
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