ugrás a tartalomhoz

Javascript változóba írt <script> tag hibát okoz

Anonymous · 2006. Dec. 13. (Sze), 21.40
var str='<?xml version="1.0" encoding="utf-8"?>'+
...
...
'<script type="text/javascript" src="adatok.js"></script>'+
...
...
a kódrészlet tkp egy weboldal js változóban, de
a <script> tag-es sorra mindig azt írja ki: unterminated string literal

pedig szerintem minden rendben van. Mi lehet a baj?
 
1

Tanulság

ukrán · 2006. Dec. 13. (Sze), 22.49
Ez egy tanulságos probléma, amelybe már én is belefutottam. Abból adódik, hogy először parszolódik a SCRIPT tag, és aztán kezdődik a script tényleges feldolgozása.

Úgy védekezhetsz ez ellen, hogy kikommentálod a szkripted

<script>
<!--
//szkripted
//-->
</script>
2

nem megy

Blackfriar · 2006. Dec. 13. (Sze), 23.02
'<script type="text/javascript" src="adatok.js"></script>'+
'<script type="text/javascript">'+
<!--
'var temp=document.menu.menu2;'+
'var temp1=document.menu.menu1;'+
'function kiir(ertek) {'+
'var adat = new Array("Baranya","Bács-Kiskun","Békés","Borsod-A-Z","Csongrád","Fejér","Győr-M-S","Hajdú-Bihar","Heves","Jász-N-Sz","Kom.-Eszt.","Nógrád","Pest","Somogy","Szab.-Sz-B","Tolna","Vas","Veszprém","Zala");'+
'temp.options.length=0;'+
'for (a=0;a<group[ertek].length;a++){temp.options[a]=new Option(group[ertek][a][0],group[ertek][a][1])};'+
'if (ertek==0 || ertek==20 || ertek==2 || ertek==8) {document.getElementById("lat").innerHTML="&nbsp;";document.getElementById("hely").innerHTML="&nbsp;";parent.main.location="welcome.htm";return;};'+
'if (ertek==21) {document.getElementById("lat").innerHTML="&nbsp;";document.getElementById("hely").innerHTML="képek csak úgy";parent.main.location="kepek.htm#kepek";}'+
'else {document.getElementById("lat").innerHTML="Látnivalók";document.getElementById("hely").innerHTML=adat[ertek-1]+" megyében";parent.main.location=temp.options[0].value;}'+
'}'+
'function betolt() {'+
'if (temp.options[temp.selectedIndex].value=="") {return};'+
'parent.main.location=temp.options[temp.selectedIndex].value'+
'}'+
-->
'</script></body></html>';
3

nem a változóban...

ukrán · 2006. Dec. 13. (Sze), 23.11
Nem a változóban kell megadni a html kommenteket, hanem az ajánlás szerint a HTML SCRIPT tag-ek között.
<html>
<head>
 <script>
 <!--
    ide rakhatod a szkriptedet, amely változójában már lehet másik SCRIPT tag
 //-->
 </script>
</head>
<body>
 akármi
</body>
</html>
4

nem ez "a" megoldás

Bártházi András · 2006. Dec. 14. (Cs), 08.44
Ezzel több probléma is van (időm hiányában nem részletezném), az igazi megoldás, hogy elfelejti az ember a HTML kódba beágyazott scripteket. Egy külső fájlba kell tenni ezeket, és nem lesz semmilyen probléma. Egyébként nem a megjegyzés használata, hanem az escape-elés lenne a megoldás, azaz < helyett &lt; írása.
5

Még egy hekk

vbence · 2006. Dec. 14. (Cs), 12.45
A konkrét helyezttől függően hazsnálhatod vagy nem, de bővítheted eszköztáradat ezzel is:
var str = '<s' + 'cript>....</s' + 'cript>';
Csúnya megoldás meg minden, úgyhogy nem tőlem hallottad...