webForumDet fria alternativet

Javascript fel vid validering av sida?

7 svar · 397 visningar · startad av maqe

maqeMedlem sedan dec. 2003824 inlägg
#1

Validatorn verkar inte förstå att det är javascript så den kör vanlig html validering istället ... hur kan man fixa detta?

GuffaMedlem sedan juni 2004533 inlägg
#2

Vad menar du, vad är det du försöker validera? Är det W3Cs validering du pratar om?

maqeMedlem sedan dec. 2003824 inlägg
#3

Jo jag var visst lite otydlig. w3c validering av html kod gäller det.

Som sagt det verkar som att den försöker validera javascript kod och då klagar den & ; < etc ...

@ndersMedlem sedan juni 200026 914 inlägg
#4

Visa kod och exakt vad validatorn säger.

GuffaMedlem sedan juni 2004533 inlägg
#5

Javascript i script-taggar brukar inte vara något problem.

Ifall du har javascript i html-taggarna (events) så ska faktiskt vissa tecknen html-kodas.

Exempel:

<input type="button" value="klicka inte" onclick="if (a < 4) window.alert(&quot;Hej &amp; hopp!&quot;);">

maqeMedlem sedan dec. 2003824 inlägg
#6

Om man har en <script> tagg så ska väl inte denna kod valideras ...

zcorpanMedlem sedan dec. 20042 269 inlägg
#7

All kod valideras! :)

I HTML är innehållet i SCRIPT "CDATA", dvs dess innehåll tolkas inte som HTML utan som "ren text". Bara sekvensen "</" känns igen av HTML-tolken, eftersom den måste veta när den träffar på </script>-taggen.

Därför måste man "escapa" sekvensen "</" om man har det, tex såhär:

<script type="text/javascript">
 document.write("<p>Hello World!<\/p>");
</script>

I XHTML är innehållet av SCRIPT inte CDATA, utan #PCDATA, alltså det tolkas av XML-tolken som märkkod. För att påtvinga CDATA får vi använda en CDATA-deklaration, tex såhär:

<script type="text/javascript"><![CDATA[
 // Det här tolkas som ren text av XML-tolken: <>&"'
]]></script>

"XHTML" som serveras som text/html, tolkas som HTML av webbläsaren. Alltså tycker webbläsaren att SCRIPT är CDATA, och texten "<![CDATA[" försöker JavaScript-tolken att få ut nåt vettigt ur, och det är inte så lyckat. ;) För att komma runt det problemet kan vi lägga en js-kommentar framför, såhär:

//<![CDATA[
...
//]]>

Hoppas jag inte krånglade till allting nu! :)

Det lättaste är dock att lägga alla skript i externa filer. ;)

maqeMedlem sedan dec. 2003824 inlägg
#8

Okay då flyttar jag nog ut dom scripten jag använder till externa filer :) ...

Jag arbetar mycket i asp.net och episerver. asp.net skriver ut lite kod som inte har hemma i ett xhtml dokument ... finns det något man kan göra åt det?

Genererad på 357 ms · cache AV · v20260730165559-full.f96bc7eb