WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   W3C vailderingsproblem (https://www.wn.se/forum/showthread.php?t=38508)

Matsaki 2009-08-16 18:58

Jag har problem med ett javascript som W3C inte vill acceptera. Här är vad W3C säger:

Citat:

delimiter """ invalid: only S separators and TAGC allowed here
…t/javascript' src='" + ox_u + "'></scr"+"ipt>");

och
Citat:

end tag for element "SCR" which is not open
…t/javascript' src='" + ox_u + "'></scr"+"ipt>");

Sä här ser hela koden ut:
Kod:

<script type='text/javascript'><!--//<![CDATA[
  var ox_u = 'http://www.ayianapa.nu/openx/www/delivery/al.php?campaignid=8&target=_blank&cb=INSERT_RANDOM_NUMBER_HERE&layerstyle=simple&align=center&valign=middle&padding=0&closetime=13&padding=0&shifth=-132&shiftv=100&closebutton=t&backcolor=FF7000&bordercolor=000000';
  if (document.context) ox_u += '&context=' + escape(document.context);
  document.write("<scr"+"ipt type='text/javascript' src='" + ox_u + "'></scr"+"ipt>");
//]]>--></script>

Skulle behöva lite hjälp att lösa det :)

Syke 2009-08-16 19:12

Servera sidan med en XHTML doctype så fungerar det ..

.. men då kommer du åka på att ändra massa annan kod för att den ska validera xhtml :)


... eller så lägger du javascriptet i en extern fil i en funktion och kallar sedan på den funktionen istället.

T.ex. så lägger du den i en fil som heter "kodsnutt.js", inkluderar den i HEAD med

Kod:

<script type="text/javascript" src="kodsnutt.js"></script>
Ändra så att javascriptet ligger i en funktion i sin fil:
Kod:

function oompaloompa() {
 var ox_u = 'http://www.ayianapa.nu/openx/www/delivery/al.php?campaignid=8&target=_blank&cb=INSERT_RANDOM_NUMBER_HERE&layerstyle=simple&align=center&valign=middle&padding=0&closetime=13&padding=0&shifth=-132&shiftv=100&closebutton=t&backcolor=FF7000&bordercolor=000000';
 if (document.context) ox_u += '&context=' + escape(document.context);
 document.write("<scr"+"ipt type='text/javascript' src='" + ox_u + "'></scr"+"ipt>");
}

och sen på sidan där koden ska köras:
Kod:

  <script type="text/javascript">
  oompaloompa();
  </script>


KarlRoos 2009-08-16 19:16

Pröva:
Kod:

document.write('<script type="text/javascript" src="'+ox_u+'"></script>');

Matsaki 2009-08-16 20:10

Citat:

<script type="text/javascript">
oompaloompa();
</script>

"oompaloompa" ??

Syke 2009-08-16 20:44

Citat:

Originally posted by Matsaki@Aug 16 2009, 20:10
Citat:

script type=text/javascript
oompaloompa();
/script

oompaloompa ??

Jaaa, jag hittade bara på ett namn till funktionen. Du kan välja vad du vill. oompaloompa(); ska motsvara det namn som du skriver i kodsnutt.js som innehåller funktionen:
Kod:

function oompaloompa() {
... din orginalkod
}


Matsaki 2009-08-16 22:29

Oki :)
Jag blev av med errors i W3C men får 2 errors i java konsolen nu?

Citat:

function oompaloompa() {
 var ox_u = 'http://www.ayianapa.nu/openx/www/del...r=000000';
 if (document.context) ox_u += '&context=' + escape(document.context);
 document.write("<scr"+"ipt type='text/javascript' src='" + ox_u + "'></scr"+"ipt>");
}

och: oompaloompa is not defined
Citat:

<script type="text/javascript">
oompaloompa();
</script>


taz76 2009-08-16 22:32

då har din externa js-fil inte laddats korrekt eller så försöker du kalla funktionen innan scriptet laddats.

Matsaki 2009-08-16 23:45

Förslag hur jag kan felsöka? I min header har jag nu denna kod:

Kod:

<script type="text/javascript" src="Scripts/header.js"></script>
<script type="text/javascript">
 * * oompaloompa();
 * </script>

och själva scirptet ligger i "/Scrips/header.js"

Robert 2009-08-17 09:11

Testa attributet defer="defer" i taggen där javascriptet laddas.

Syke 2009-08-17 10:49

I header ska du bara ha
Kod:

<script type="text/javascript" src="Scripts/header.js"></script>
och sen ska följande ligga på den plats där koden låg från början i sidan:
Kod:

<script type="text/javascript">
  oompaloompa();
 </script>


Matsaki 2009-08-17 10:59

Det låg bara den kodsnutten som jag visade i min första fråga, och den låg i headern.

SimonP 2009-08-17 11:32

Alltså, det är inte så lyckat att ni ger honom tips som gör att hans javascript slutar fungera :)

Matsaki, gå tillbaka till allra första början:
Kod:

<script type='text/javascript'><!--//<![CDATA[
 *var ox_u = 'http://www.ayianapa.nu/openx/www/delivery/al.php?campaignid=8&target=_blank&cb=INSERT_RANDOM_NUMBER_HERE&layerstyle=simple&align=center&valign=middle&padding=0&closetime=13&padding=0&shifth=-132&shiftv=100&closebutton=t&backcolor=FF7000&bordercolor=000000';
 *if (document.context) ox_u += '&context=' + escape(document.context);
 *document.write("<scr"+"ipt type='text/javascript' src='" + ox_u + "'></scr"+"ipt>");
//]]>--></script>

Det är följande rad om inte W3C validerar:
document.write("<scr"+"ipt type='text/javascript' src='" + ox_u + "'></scr"+"ipt>");

Skall man använda ordet </script> inuti ett javascript så måste man behålla "obfuskeringen" annars avbryter webläsaren hela scriptet!

Prova byt raden mot:
document.write("<"+"scr"+"ipt type='text/javascript' src='" + ox_u + "'></"+"scr"+"ipt>");

Om inte ovan funkar finns det massor av andra sätt att lösa detta, t.ex med kommandot eval(), hexkonverteringar etc etc...


Alla tider är GMT +2. Klockan är nu 06:44.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson