[JS] krijg een string niet goed met al die quotes

Pagina: 1
Acties:

  • Cheater
  • Registratie: Januari 2001
  • Laatst online: 05-05 15:20
Ik probeer een bestandslijst op te bouwen met Javascript, en deze dan in een DIV blok plaatsen

Ik ben en een lange tijd bezig en kom er niet uit, want m'n probleem zijn de quotes.
code:
1
2
specialstr = 'return escape(\"tekst\")';
output_str = output_str + '  <div onmousemove="this.T_STATIC=true; '+specialstr+'">teststr';
zoals je ziet heb ik het gedeelte waar m'n probleem zit al in een aparte variable gezet, maar dit helpt echter niet.

M'n foutmeldingen zijn:
unterminated string literal
syntax error

Ook geprobeerd:
code:
1
2
3
var quote = "'";
specialstr = 'return escape('+quote+'tekst'+quote+')';
output_str = output_str + '  <div onmousemove="this.T_STATIC=true; '+specialstr+'">a';
Het gaat ten alle tijde fout na return escape(
de quote die erna komt wil gewoon niet..., en ik wil graag niet met scripts achteraf nog onmouseover's gaan toekennen...

Als ik het zonder de specialstr doe, werkt het wel gewoon.

Kan iemand me helpen met deze quote-drama?

[ Voor 141% gewijzigd door Cheater op 28-06-2005 15:03 ]


  • r0bert
  • Registratie: September 2001
  • Laatst online: 26-04 17:38
code:
1
output_str += '<div onmousemove="this.T_STATIC=true; return escape(\'tekst\');">teststr</div>';
?

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

crisp

Devver

Pixelated

als je dubbele quotes wilt gebruiken in een attribuut dan zul je die moeten html-encoden:
HTML:
1
<div onclick="alert(&quot;hoi!&quot;)">hoi</div>

binnen scripting moet je dezelfde quotes als die je gebruikt als string-constructor escapen met een backslash:
JavaScript:
1
specialstr = 'return escape(\'tekst\')';

het ligt er dus helemaal aan binnen welke context je bezig bent: HTML --> HTML-encoding; scripting --> escaping

Intentionally left blank