Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[JS] </script> in variable eindigt het script

Pagina: 1
Acties:

  • Maghiel
  • Registratie: Maart 2004
  • Laatst online: 16-11 22:01
code:
1
2
3
4
5
<script type="text/javascript" language="JavaScript">
var foo = "</script>";

alert(foo);
</script>


output:

code:
1
"; alert(foo);


Hoe kan dat? </script> staat toch IN de variable? dan kan hij het hele script toch nooit afbreken?

  • WeeJeWel
  • Registratie: April 2007
  • Laatst online: 11:53
</script> staat buiten het script zelf, omdat html boven JS staat. Maak er eens \<\/script\> van

Homey — Critics are those without skills to create.


  • Sebazzz
  • Registratie: September 2006
  • Laatst online: 19-11 18:15

Sebazzz

3dp

Je moet:
JavaScript:
1
var foo = "<scr" + "ipt>";

doen.

[Te koop: 3D printers] [Website] Agile tools: [Return: retrospectives] [Pokertime: planning poker]


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Hoe moet de JS engine anders weten dat het script eindigt? ;)

Wat wil je precies doen?

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • Maghiel
  • Registratie: Maart 2004
  • Laatst online: 16-11 22:01
WeeJeWel schreef op woensdag 19 maart 2008 @ 17:38:
</script> staat buiten het script zelf, omdat html boven JS staat. Maak er eens \<\/script\> van
Ok dat wist ik niet. Wat ik dan niet snap; hoe kun je andere html tags dan wel in een js variabele stoppen?
Sebazzz schreef op woensdag 19 maart 2008 @ 17:39:
Je moet:
JavaScript:
1
var foo = "<scr" + "ipt>";

doen.
Dank je voor de tip maar dat is voor mijn situatie geen oplossing.
BtM909 schreef op woensdag 19 maart 2008 @ 17:40:
Hoe moet de JS engine anders weten dat het script eindigt? ;)

Wat wil je precies doen?
Door de tag aan het einde. Ik zet het toch niet voor niets in een variabele :p

Wat ik wil doen:
Ik heb een musicplayer dat een flash bestand is. Die wil ik zonder refresh op verschillende plekken op de website tevoorschijn kunnen toveren. Daarom zet ik hem dus in een JS var.
Om te zorgen dat de IE6 gebruikers het bestand niet eerst hoeven te activeren, gebruik ik die workaround van adobe. Dus er zit een script omheen. Maar ik kan dat nu dus niet in een js variabele stoppen.

Iemand een oplossing misschien? Andere aanpak? IE6 gebruikers maar laten stikken? :p

  • Joshua
  • Registratie: Juli 2005
  • Laatst online: 12-11 13:44
Maghiel schreef op woensdag 19 maart 2008 @ 17:54:
Wat ik wil doen:
Ik heb een musicplayer dat een flash bestand is. Die wil ik zonder refresh op verschillende plekken op de website tevoorschijn kunnen toveren. Daarom zet ik hem dus in een JS var.
Om te zorgen dat de IE6 gebruikers het bestand niet eerst hoeven te activeren, gebruik ik die workaround van adobe. Dus er zit een script omheen. Maar ik kan dat nu dus niet in een js variabele stoppen.

Iemand een oplossing misschien? Andere aanpak? IE6 gebruikers maar laten stikken? :p
Wat je zou kunnen doen is dat flash bestand + html/javascript code in een aparte file zetten en deze dan met javascript aanroepen via XMLHttpRequest().

Oftewel de flashplayer in een bestaand genaamd: flashplayer.html
en dan met javascript door middel van een XMLHttpRequest() flashplayer.html aanroepen.

  • WeeJeWel
  • Registratie: April 2007
  • Laatst online: 11:53
Maghiel schreef op woensdag 19 maart 2008 @ 17:54:
Ok dat wist ik niet. Wat ik dan niet snap; hoe kun je andere html tags dan wel in een js variabele stoppen?
Alle tags die tussen <script> en </script> staan negeert je browser, op </script> na. Dus andere werken gewoon. De methode die ik zei moet gewoon werken.

Homey — Critics are those without skills to create.


  • Maghiel
  • Registratie: Maart 2004
  • Laatst online: 16-11 22:01
Spike1506 schreef op woensdag 19 maart 2008 @ 18:07:
[...]


Wat je zou kunnen doen is dat flash bestand + html/javascript code in een aparte file zetten en deze dan met javascript aanroepen via XMLHttpRequest().

Oftewel de flashplayer in een bestaand genaamd: flashplayer.html
en dan met javascript door middel van een XMLHttpRequest() flashplayer.html aanroepen.
een html bestand maken kan bij mij niet, dat is niet zo verantwoord in mijn framework ;)
maar je hebt me wel op een idee gebracht! thnx!
WeeJeWel schreef op woensdag 19 maart 2008 @ 18:39:
[...]


Alle tags die tussen <script> en </script> staan negeert je browser, op </script> na. Dus andere werken gewoon. De methode die ik zei moet gewoon werken.
ja, maar dan wordt het niet meer als script gezien ;)

  • WeeJeWel
  • Registratie: April 2007
  • Laatst online: 11:53
Als je nou gewoon de code in een variabele zet, die via innerHTML schrijft, dan moet hij gewoon werken.

Homey — Critics are those without skills to create.


  • Maghiel
  • Registratie: Maart 2004
  • Laatst online: 16-11 22:01
WeeJeWel schreef op woensdag 19 maart 2008 @ 18:56:
Als je nou gewoon de code in een variabele zet, die via innerHTML schrijft, dan moet hij gewoon werken.
geprobeerd maar werkt bij mij niet! en ik ga toch voor de request oplossing, is veel netter!

  • Maghiel
  • Registratie: Maart 2004
  • Laatst online: 16-11 22:01
Overigens, mooi artikel over mijn topic gevonden:
http://www.wwco.com/~wls/...-in-a-javascript-literal/

Verwijderd

WeeJeWel schreef op woensdag 19 maart 2008 @ 18:39:

Alle tags die tussen <script> en </script> staan negeert je browser, op </script> na. Dus andere werken gewoon. De methode die ik zei moet gewoon werken.
Dit is niet per se waar. Een XML parser zal niet alles tussen <script> en </script> negeren. Je doet er het best aan om ofwel alles juist te escapen, ofwel scripts als losse resource te laden.

Als je dit probleem niet zo 1, 2, 3 begrijpt, bedenk dan eens hetzelfde, maar dan met <textarea> en </textarea>. De fout die je maakt is dat je aan Javascript code gaat denken, vóórdat duidelijk is wat er precies naar de Javascript interpreter moet. Het is éérst HTML, en daarná pas Javascript.

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 14:23

crisp

Devver

Pixelated

In fact; de specificatie beschrijft dat de combinatie </ plus een alfanumeriek teken feitelijk al het einde van (in dit geval) de scriptdata aanduidt. Dat browsers dat losser geimplementeerd hebben en extra checken of het wel een sluittag voor het script-element is is feitelijk een afwijking tov de (huidige) HTML specificatie...

Intentionally left blank


  • f.v.b
  • Registratie: Januari 2008
  • Laatst online: 17-11 09:06
Spike1506 schreef op woensdag 19 maart 2008 @ 18:07:

Wat je zou kunnen doen is dat flash bestand + html/javascript code in een aparte file zetten en deze dan met javascript aanroepen via XMLHttpRequest().

Oftewel de flashplayer in een bestaand genaamd: flashplayer.html
en dan met javascript door middel van een XMLHttpRequest() flashplayer.html aanroepen.
Deze oplossing snap ik niet. Je kan met XMLHttpRequest() gegevens later ophalen, maar hoe lost het het probleem op van TS?

Don't erase all files?
       [Yes]   [No]


  • Joshua
  • Registratie: Juli 2005
  • Laatst online: 12-11 13:44
f.v.b schreef op donderdag 20 maart 2008 @ 03:53:
[...]


Deze oplossing snap ik niet. Je kan met XMLHttpRequest() gegevens later ophalen, maar hoe lost het het probleem op van TS?
Mijn redenering was hiervoor: Als de TS de flashplayer op verschillende plaatsten wilt hebben maar dit niet wilt doen zonder refresh en hij dit tevens wilt doen met de work-a-round die javascript vereist (waardoor de TS dus problemen heeft met </script>) waarom dan niet de flashplayer in een apart bestand en deze aanroepen via de XMLHttpRequest() waardoor refreshen van de hele pagina niet nodig is maar je wel kunt zeggen waar de flashplayer moet komen te staan door middel van de juiste divjes en document.getElementById("id").innerHTML = paginaDieAanGesprokenIs;.

Hoop dat me uitleg een beetje duidelijk is.

  • Maghiel
  • Registratie: Maart 2004
  • Laatst online: 16-11 22:01
Spike1506 schreef op donderdag 20 maart 2008 @ 09:18:
[...]


Mijn redenering was hiervoor: Als de TS de flashplayer op verschillende plaatsten wilt hebben maar dit niet wilt doen zonder refresh en hij dit tevens wilt doen met de work-a-round die javascript vereist (waardoor de TS dus problemen heeft met </script>) waarom dan niet de flashplayer in een apart bestand en deze aanroepen via de XMLHttpRequest() waardoor refreshen van de hele pagina niet nodig is maar je wel kunt zeggen waar de flashplayer moet komen te staan door middel van de juiste divjes en document.getElementById("id").innerHTML = paginaDieAanGesprokenIs;.

Hoop dat me uitleg een beetje duidelijk is.
yup, begreep ook precies wat je bedoelt. ik zet het dan niet in een los bestand, maar stuur verzoek naar een module, die de player terug geeft, met alle variabelen ingevult die ingevult moeten zijn. dat is gelijk al beter ook omdat ik dan niet met javascript nog eens de variabelen hoef in te vullen.
Pagina: 1