Permalänk
Medlem

JavaScript i xhtml !

Jag håller på att göra om min hemsida som är skriven i HTML till XHTML. Men jag har problem med min JavaScript räknare (och andra java scripts). Kontrollen klagar över att jag måste ha koder istället för tecknena i scriptet. ska jag eller Hur ska jag göra?

Jag har lagt scriptet rätt upp och ner i en <td>

Snalla hjälp mig!

/ www.bergq.se

Permalänk
Medlem

Glöm inte att kommentera bort koden inom script.

<script> <!-- /* Ditt script här */ //--> </script>

Permalänk
Medlem

Ska jag ta bort koden efter kontrollen? ... eller ska den vara kvar?

Permalänk
Medlem

Alltså, du "HTML-kommenterar" bort all javascript för att validatorn inte ska försöka tolka det.
Javascriptet bryr sig inte om kommentarerna, t ex ska du ha ett script som öppnar ett fönster är detta den rätta koden:

<script> <!-- window.open("tjosan.html","",""); //--> </script>

Permalänk
Medlem

Tack så jätte mycket... tack för jätte bra och snabbt svar!

Sweclockers är ju underbart!

!!! Nu har jag gjort om .xml filen till .html och nu syns inte JavaScriptet alls istället... vad är felet?

EDIT: så att det inte funkade

Permalänk
Medlem

Vilken version av XHTML kör du?
Hur serverar du det? text/html eller application/xhtml+xml?

Visa signatur

10 RTFM
20 RTFAQ
30 STFW

Permalänk
Medlem

Jag skriver koden själv.

jag använder mig utav:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" charset="iso-8859-1">

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Bergq
Jag skriver koden själv.

jag använder mig utav:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" charset="iso-8859-1">

Kan inte komma på något så här på rakt arm. Problemet är inte särskilt väldefinierat iheller. Upptäckte en del saker som du i alla fall kan rätta till.

Encooding:en i prologen. Se till så att den helst stämmer överens med vad din server serverar dokumentet som.

Attributet som jag markerat i rött. Ta bort det. Det finns inget attribut med det namnet definierat i DTD:n.

Sen ska det som Don_Tomaso sagt funka. Serverar du dokumentet som text/html ska det räcka med att lägga JavaScript-koden inom HTML-kommentarer.

Visa signatur

10 RTFM
20 RTFAQ
30 STFW

Permalänk
Medlem

Tack.. det funkade ju med att komentera bort... men då syntes ju så klart ingen text/bild på hemsidan heller, eftersom jag komenterat bort detta.

*funderar*

Problemet kvarstår

Permalänk
Medlem

Är det fortfarande nödvändigt att kommentera bort Javascript alltså? Jag fick för mig att det var förlegat av någon anledning

Visa signatur
Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Nimh
Är det fortfarande nödvändigt att kommentera bort Javascript alltså? Jag fick för mig att det var förlegat av någon anledning

Så vitt jag vet är det en legacy-grej. I en del gamla webbläsare så visas innehållet i för webbläsaren okända taggar (vanligtvis <style> och <script>) som ren text på skärmen. Därför lägger man till dessa kommentarer, så att Javascript/CSS-koden inte ska visas.

Permalänk
Medlem

Men då synns ingen ting på skärmen... jag vill ju att JavaScriptet ska generera text på hemsidan... men den texten komenteras alltså också bort då. så den lösningen fungerar inte för mig.

Permalänk
Medlem

Kan du klistra in allting från <script> till </script> här så vi ser hur du har gjort?

Permalänk
Medlem

Eftersom du kommenterar bort allt inom scriptet så kommer inte browsern läsa det pga. de nya reglerna som följer med xhtml (regler för xml): kommentarer ska klienten hoppa över utan att ens läsa innehållet, dessutom så får inte < eller & förekomma inom taggarna.

Det finns två lösningar:

<script type="text/javascript"> <![CDATA[ // Din javascript-kod här ]]> </script>

och (den bättre):

<script type="text/javascript" src="javascript.js"></script>

För att få den andra att funka så lägger du bara javascript-koden i en extern fil, i och med att du gör det så behöver du inte tänka på de tecken som kan strula upp din markup och samtidigt kan browsern lägga scriptet i sin cache, vilket förhoppningsvis minskar internet-trafiken.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Gurglet

<script type="text/javascript"> <![CDATA[ // Din javascript-kod här ]]> </script>

En liten notis om detta bara. När man serverar XHTML som text/html ska man använda HTML kommentarer (<!-- ... -->) som "escape". Serverar man XHTML som application/xhtml+xml ska man endast använda CDATA (<![CDATA[ ... ]]>). Så läser man av HTTP Accept headern och skickar innehållet baserat på om klienten förstår application/xhtml+xml eller inte (text/html) så måste man även på serversidan bygga in logik för att välja "escape".

Visa signatur

10 RTFM
20 RTFAQ
30 STFW

Permalänk
Medlem

Nu fungerar det med HTML bortkomentering. vet inte vad jag hade gjort för fel men jag tror att jag använde //--> istället för // -->
Så nu är problemet löst och koden hittar ni/du på www.bergq.se

Tack få bra svar... ska testa:

<script type="text/javascript" src="javascript.js"></script>

Lite senare och få detta att fungera som det ska också.
För man använder samma script som jag använder nu och lägger i filen "javascript.js" då? Alltså det ska bara vara scriptet mellan taggarna som ska ligga i den filen inte <script> taggarna?

/bergq

PS. enligt http://www.w3schools.com/xhtml/xhtml_validate.asp så är det fortfarande vissa fel, men detta ska jag försöka rätta till själv om några dagar förhoppningsvis. Ds.

EDIT: Test (PS.)

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Bergq
För man använder samma script som jag använder nu och lägger i filen "javascript.js" då? Alltså det ska bara vara scriptet mellan taggarna som ska ligga i den filen inte <script> taggarna?

Precis.

Visa signatur

10 RTFM
20 RTFAQ
30 STFW