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 |
#2 · Zasláno: 20. 3. 2012, 15:18:16
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> ,ale document.write("<script>document.write('1234567890');</"+"script>"); |
||
_es Profil |
#4 · Zasláno: 20. 3. 2012, 15:30:41
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> |
||
_es Profil |
#8 · Zasláno: 20. 3. 2012, 15:57:48
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 |
#10 · Zasláno: 20. 3. 2012, 16:11:50
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 |
#11 · Zasláno: 20. 3. 2012, 16:19:18
Na to stačí
<script>for(;;)document.write("<hr>");</script> |
||
_es Profil |
#12 · Zasláno: 20. 3. 2012, 16:20:32
SeparateSK:
„Na to stačí“ No a prečo si teda nepoužil, keď to stačí? |
||
Časová prodleva: 11 let
|
0