Avatar billede mik789 Nybegynder
05. marts 2004 - 12:26 Der er 7 kommentarer og
1 løsning

javascript i html validering

Her er noget html kode:

<body>
<div onmouseover="this.style.backgroundColor='#e3e3e3';" onmouseout="this.style.backgroundColor='#d3d3d3';">
<span onclick="skift('div1');"><b>Overskrift</b></span><ol><li><a href="side1.html">Side1</a></li></ol></div>
</body>

Når det valideres i html-validatoren siger den: "Congratulations, no errors!"

Her er "det samme" men i dynamisk form:

<body>
<script type="text/javascript">
var TOC = '<span onclick="skift(\'div1\');"><b>Overskrift</b></span><ol><li><a href="side1.html">Side1</a></li></ol>';
document.write('<div onmouseover="this.style.backgroundColor=\'#e3e3e3\';" onmouseout="this.style.backgroundColor=\'#d3d3d3\';">' + TOC + '</div>');
</script>
</body>

Og det kan validatoren ikke lide. Den giver fejl for alle tags i stil med:

"Error: end tag for element B which is not open; try removing the end tag or check for improper nesting of elements"

HVORFOR DET?

//mik
Avatar billede mm12010 Nybegynder
05. marts 2004 - 12:33 #1
prøv:

var TOC = '<span onclick="skift(\47div1\47);"><b>Overskrift</b></span><ol><li><a href="side1.html">Side1</a></li></ol>';
document.write('<div onmouseover="this.style.backgroundColor=\47#e3e3e3\47;" onmouseout="this.style.backgroundColor=\47#d3d3d3\47;">' + TOC + '</div>');
</script>
Avatar billede mik789 Nybegynder
05. marts 2004 - 12:33 #2
Hejsa, fandt selv et svar. Se her: http://www.htmlhelp.com/tools/validator/problems.html#script

[man skal escape slashes, ellers tror validatoren at det første </xxx> er endetag for <script>
Avatar billede sbm Nybegynder
05. marts 2004 - 12:33 #3
Et bud er at den generelt ikke er begejstret for dit javascript. En måde til at løse det, kunne være at lægge det i en HTML-kommentar.

Eksempel:

<body>
<script type="text/javascript">
//<!--
var TOC = '<span onclick="skift(\'div1\');"><b>Overskrift</b></span><ol><li><a href="side1.html">Side1</a></li></ol>';
document.write('<div onmouseover="this.style.backgroundColor=\'#e3e3e3\';" onmouseout="this.style.backgroundColor=\'#d3d3d3\';">' + TOC + '</div>');
//-->
</script>
</body>
Avatar billede mik789 Nybegynder
05. marts 2004 - 12:39 #4
<body>
<script type="text/javascript">
var TOC = '<span onclick="skift(\'div1\');"><b>Overskrift<\/b><\/span><ol><li><a href="side1.html">Side1<\/a><\/li><\/ol>';
document.write('<div onmouseover="this.style.backgroundColor=\'#e3e3e3\';" onmouseout="this.style.backgroundColor=\'#d3d3d3\';">' + TOC + '<\/div>');
</script>
</body>

"Congratulations, no errors!"

Så det var det med mine slashes. Men jeg vil tro at mange andre laver samme nummer, så selv om jeg selv snupper pointene, kan det vel gavne at jeg postede dette ;-)
Avatar billede mik789 Nybegynder
05. marts 2004 - 12:40 #5
men hvis andre har gode bud er erfaringer med javascript i html validering, så kom med det, så deler vi pointene....
Avatar billede olebole Juniormester
05. marts 2004 - 12:40 #6
<ole>

sbm >> Kan du så ikke give et eksempel på, hvordan man laver en HTML-kommentar?  :)
Det, du har skrevet der, er hverken HTML eller JavaScript ... det gør vist bare det hele endnu værre  :)

/mvh
</bole>
Avatar billede sbm Nybegynder
05. marts 2004 - 12:54 #7
olebole >> Jeg testede lige, og du har vist ret. Det var også bare et bud, for umiddelbart burde det være muligt, hvis man kigger på det rent javascript syntax-mæssigt (hvor <!-- og --> er kommenteret ud) og ligeledes HTML syntax mæssigt, hvor javascripten - set fra et HTML-tag mæssigt synspunkt - er udkommenteret med <!-- og -->

Guess I missed the mark.
Avatar billede olebole Juniormester
05. marts 2004 - 12:59 #8
<!-- Dette er gemt for HTML -->

<scipt type="text/JavaScript">
<!-- Dette er gemt for ikke JS-enabled browsere //-->
</script>

Man kan ikke bruge HTML-kommentarer indenfor script-tags .... bare for at få tingene helt på plads  ;o)
/mvh
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