Avatar billede ajbo Nybegynder
27. april 2003 - 12:48 Der er 15 kommentarer

Javascript < i XHTML 1.1

Jeg øsker at vælge 1 af 2 billeder alt efter brugers skærmopløsning. Følgende FORKERTE script virker både i Explorer og Mozilla, men det er  og bør være FORKERT i XHTML 1.1 burde < ikke kunne udskiftes med enten &lt; eller &#139; (det RIGTIGE ?)

I håb om godt svar
AJBO


<script>
if(screen.width < 900)
document.write('<img name="foto1" src="startop/foto1.jpg" alt="" />');
else
document.write('<img name="foto2" src="startop/foto2.jpeg" alt="" />');
</script>
Avatar billede olebole Juniormester
27. april 2003 - 14:13 #1
<ole>

Hvad mener du, burde være forkert i det script?

/mvh
</bole>
Avatar billede ajbo Nybegynder
27. april 2003 - 14:28 #2
Jeg "mener" skam ikke, noget er forkert - der er ganske enkelt forkert, hvad du bl.a. vil
kunne konstarere ved at bruge Amaya editoren fra w3c. Forskellen ppå XHTL 1.0 og er at XHTML 1.0 bygger på HTML, mens XHTML 1.1 og højere bygger på XML. I sidstnævnte, som jeg ellers bruger, skal < normalt skiftes ud med &lt; men af en eller anden underlig grund ikke i det aktuelle tilfælde.
Avatar billede olebole Juniormester
27. april 2003 - 14:34 #3
Jamen, du kan da ikke bruge '&lt;' i JavaScript .... så er der noget, du helt har misforstået.
Du kan ikke anvende HTML-entities i nogen JavaScript-version. Du skal bruge den escapede oktaltal-værdi til tegnets keyCode (ASCII).
Brug '\74' for '<' og '\76' for '>'
Avatar billede ajbo Nybegynder
27. april 2003 - 15:09 #4
Tusind tak for hjælpen.
Avatar billede olebole Juniormester
27. april 2003 - 15:31 #5
... anytime  :)
Avatar billede ajbo Nybegynder
27. april 2003 - 20:48 #6
Nu har jeg prøvet både dit forslag og jeg har indsat CDATA koden. Det sidste virker kun på den måde, at jeg derved ikke får 1, men hele 3 fejl.
Avatar billede ajbo Nybegynder
27. april 2003 - 20:51 #7
Jeg har forsøgt et utal af gange at lukke trådene, men får hver kan en fejlmelding. Jeg mener, jeg lukker på samme måde, som jeg har gjort ved andre spørgsmål, men jeg kan altså ikke få lukket. Jeg bruger Linux - kan min brandmur være en hindring for at lukke?

AJBO
Avatar billede =maddog= Nybegynder
27. april 2003 - 20:55 #8
husk at CDATA escape tagget skal være med store bogstaver, hvilket kan være en drilsk kontrast, og der ikke må være nogen form for mellemrum i selve tag deklareringen.
Hvilke fejl får du?
Du kan kun lukke ved at svare selv og acceptere dit eget svar. Hold dette spm åbent, da det er ældst og svar/luk på det andet.
Avatar billede =maddog= Nybegynder
27. april 2003 - 21:06 #9
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link rel="stylesheet" href="../globale.css" type="text/css" />
<title>Velkommen</title>
<meta name="generator" content="amaya 7.2, see http://www.w3.org/Amaya/" />
<script type="text/javascript">
foto1 = new Image();
foto2 = new Image();
foto1.src = "startop/foto1.jpg";
foto2.src = "startop/foto2.jpeg";
</script>
</head>
<body>
<p style="position:absolute;left:0;margin:0;padding:0;top:0;">
<script type="text/javascript">
//<![CDATA[
if(screen.width < 900)
document.write('<img name="foto1" src="images/8.jpg" alt="" />');
else
document.write('<img name="foto2" src="images/9.jpg" alt="" />');
//]]>
</script>
</p>

<script type="text/javascript">
timerID = setTimeout("location = 'startop/main.html'",3500);
</script>

</body>
</html>

validerer på w3c som xhtml 1.1 og scriptet virker. jeg ved ikke rigtig hvad jeg skal stille op når det virker hos mig...
Avatar billede ajbo Nybegynder
27. april 2003 - 21:08 #10
Jeg brugte af dovenskab dine tags direkte. Jeg startede med at have fejlen med mindre end tegnet. Hvis jeg erstatter det med backslash 74 eller med &lt; eller med &#139 så sker der ingen verdens ting, hvorimod det i det givne tilfælde ønskede billede hentes ind, hvis koden er forkert CDATA koden ser ud til at være absolut virkningsløs. Jeg slutter så logisk (?) at jeg begynder med 1 fejl og får 3 ved at indsætte 2 virkningsløse tags (det tager en vis tid for browseren at fortolke dem.
Avatar billede =maddog= Nybegynder
27. april 2003 - 21:12 #11
Er det skrevet efter min sidste besked?
Jeg kan altså ikke begribe hvad der er galt.
Du behøver kun at escape <script> tags hvor data noden indeholder < eller >. De andre parses fint som regulær data.
Avatar billede ajbo Nybegynder
27. april 2003 - 21:18 #12
Undskyld jeg havde ikke bemærket validerer på w3c som xhtml 1.1 og scriptet virker. jeg ved ikke rigtig hvad jeg skal stille op når det virker hos mig... Nu har jeg et slutspørgsmål. Er det muligt for mig at komme ind flere steder hos www.w3c.org for at valuere. Jeg fik selv 7 fejl, da jeg valuerede nøjagtig samme script hos nævnte. Så mange fejl slugte jeg ikke, men mindre end tegnet må da være forkert eller hvad?
Avatar billede =maddog= Nybegynder
27. april 2003 - 21:28 #13
http://validator.w3.org/
validerer det oven-nævnte (21:06:48). Jeg har kun valideret for xhtml.
husk at data indenfor <script> skal overholde to standarder - xhtml og ECMAscript -. Det sidstnævnte har klare retningslinjer for brugen af <,[,],> og ! der alle findes i <![CDATA[ ]]>. For at hindre disse fejl kan du markere at disse linjer skal ignoreres af scriptet med //.

altså: xml opfatter denne node som
<script>
//
<![CDATA[]]>
</script>

og JavaScript parseren opfatter det som
<script type="text/javascript">
if(screen.width < 900)
document.write('<img name="foto1" src="images/8.jpg" alt="" />');
else
document.write('<img name="foto2" src="images/9.jpg" alt="" />');
</script>
Avatar billede ajbo Nybegynder
27. april 2003 - 21:55 #14
Tusind tak for al din hjælp her. Jeg kan ikke se, opm du har fået dine points, er det ikke tilfældet må du lige komme tilbage, for jeg har fået stor hjælp.
AJBO
Avatar billede =maddog= Nybegynder
27. april 2003 - 22:05 #15
jeg har fået point fra det forrige spørgsmål (60 i alt, tak for det :) ), og jeg skal jo ikke have betaling to gange - jeg er ikke VVS-mand..
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