Autor Zpráva
SeparateSK
Profil
Dobrý deň ,mám niečoako samorozmnožovací script, ktorý sa bude do nekonečna aplikovať/vypisovať, lenže keď ho spustím, document.write vypíše iba : ' "); ', a JS Konzola vypisuje Unexcepted token ILLEGAL
<script>
document.write("<script>"+document.all(2).innerHTML+";alert('"+document.all(2).innerHTML+"')</script>");
</script>

Dá sa nejak obísť tento problém?
Ale keď skúsim napr: document.write("<script>alert('123');</script>"); , tak to funguje OK, a pritom to tiež vypíše script ,ktorý sa následne spustí.
Chamurappi
Profil
Reaguji na SeparateSK:
Dá sa nejak obísť tento problém?
Zařídit, aby uvnitř řetězce nebyla značka </script>, která ukončuje ten počáteční <script>. Možností je mnoho — rozlámat řetězec na součet řetězců, escapovat…
SeparateSK
Profil
I tak to nefunguje:
<script>
document.write("<script>"+document.all(2).innerHTML+";alert('"+document.all(2).innerHTML+"')</"+"script>");
</script>
Síce to odstránilo ");, ale stále to nespustí funkciu alert();
,ale
document.write("<script>document.write('1234567890');</"+"script>");
už funguje - naozaj vypíše 1234567890
_es
Profil
SeparateSK:
Čo čakáš, že bude v document.all(2)? Alebo, čo by tam malo byť? Pozrel si si, v akých prehliadačoch táto metóda funguje a v akých nefunguje? A v document.all(2).innerHTML by malo byť čo? Nejaký JS kód?
SeparateSK
Profil
v document.all(2).innerHTML je 'document.write("<script>"+document.all(2).innerHTML+";alert('"+document.all(2).innerHTML+"')</"+"script>");'
document.all(2) je HTMLScriptElement
_es
Profil
SeparateSK:
?
To nedáva zmysel.
document.all(2) definované cez document.all(2)? Pozrel si vôbec niečo o tej metóde?

document.all(2) je HTMLScriptElement
Určite? Vo všetkých prehliadačoch (s funkčným JS)? A je vo viacerých prehliadačoch, ak sa jedná o objekt elementu <script>, v jeho vlastnosti innerHTML niečo užitočné?
SeparateSK
Profil
To ,že v IE je to iba "object",tomu sa moc nečudujem ,ale v ostatných to je "[object HTMLScriptElement]"
Keď som odstránil alert();, pridal document.all[2].innerHTML do zátvoriek,tak to hneď ide:

<script>
document.write("<script>"+(document.all[2].innerHTML)+"</"+"script><hr>");
</script>
Vypíše to X krát <hr>
_es
Profil
SeparateSK:
Keď som odstránil alert();, pridal document.all[2].innerHTML do zátvoriek,tak to hneď ide:
A nenapadlo ťa, že by mohol byť problém trebárs s úvodzovkami ohraničujúcim textový reťazec?

Vypíše to X krát <hr>
A nešlo by to nejako - normálnejšie?
SeparateSK
Profil
Ako myslíš : A nešlo by to nejako - normálnejšie?
akože by to malo vypisovať "<hr>" do nekonečna?
_es
Profil
SeparateSK:
Ako myslíš : A nešlo by to nejako - normálnejšie?
akože by to malo vypisovať "<hr>" do nekonečna?
Trebárs nejako v princípe takto:
<script>Kód, ktorý vypíše do dokumentu X krát <hr></script>
SeparateSK
Profil
Na to stačí
<script>for(;;)document.write("<hr>");</script>
_es
Profil
SeparateSK:
Na to stačí
No a prečo si teda nepoužil, keď to stačí?

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: