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

[JS] tekst over meer regels geeft error

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hi Mensen,

Ik ben bezig met een simpel stukje javascript maar ik zit ff te klojo'n met iets waar ik maar niet achter kom.
Bij een onclick event wijzigt de tekst van een div.
Het werkt allemaal prima behalve als ik de code over meerdere regels laat lopen.


JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    function displayPerson(i){
    
        var tekst=new Array()
        tekst[3]= "person number 1<br /><p>Hello i'm person 1<br />
        Please let me tell you about......</p>"
        tekst[4]= "person number 2<br /><p>Hello i'm person 2<br />Please let me tell you about......</p>"
        tekst[5]= "person number 3<br /><p>Hello i'm person 3<br />Please let me tell you about......</p>"
        tekst[6]= "person number 4<br /><p>Hello i'm person 4<br />Please let me tell you about......</p>"
        tekst[7]= "person number 5<br /><p>Hello i'm person 5<br />Please let me tell you about......</p>"

        if( document.getElementById )
        {
            document.getElementById( 'textDIV' ).innerHTML = tekst[i];
        }


Zoals hieronder tekst[3] over 2 regels loopt geeft het een error.

JavaScript:
1
2
        tekst[3]= "person number 1<br /><p>Hello i'm person 1<br />
        Please let me tell you about......</p>"


maar bij onderstaande werkt het wel:

JavaScript:
1
        tekst[3]= "person number 1<br /><p>Hello i'm person 1<br />Please let me tell you about......</p>"


Enorm irritant.... zeker als ik straks de tekst uit een database wil halen.
Iemand een idee waarom dit is en of dit te verhelpen is?

thanks!

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

crisp

Devver

Pixelated

Gewoon een kwestie van escapen:
PHP:
1
$data = addcslashes($data, "\0\n\r\t\\'/\"");

Intentionally left blank


  • mocean
  • Registratie: November 2000
  • Laatst online: 04-09 10:34
Als je tekst over meerde regels wil in JS moet je zoiets doen:

code:
1
2
var a='test 1'
      + 'test' 2;

Koop of verkoop je webshop: ecquisition.com


Verwijderd

mocean schreef op maandag 18 februari 2008 @ 23:46:
Als je tekst over meerde regels wil in JS moet je zoiets doen:

code:
1
2
var a='test 1'
      + 'test' 2;
Of zoiets:

JavaScript:
1
2
var s = 'dit is een hele lange \
        regel met heeeeel veel tekst';

Let er wel op dat alle whitespace tussen de begin en eindquote onderdeel zijn van de string. Dus inclusief de newline en de indenting-spaties.

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

crisp

Devver

Pixelated

Verwijderd schreef op maandag 18 februari 2008 @ 23:50:
[...]

Of zoiets:

JavaScript:
1
2
var s = 'dit is een hele lange \
        regel met heeeeel veel tekst';

Let er wel op dat alle whitespace tussen de begin en eindquote onderdeel zijn van de string. Dus inclusief de newline en de indenting-spaties.
Dat is implementatie-specifiek en dus geen gedefinieerde behaviour. Sowieso zal je wel meer moeten escapen als je met ruwe data werkt...

Intentionally left blank


  • reddevil
  • Registratie: Februari 2001
  • Laatst online: 06-10 14:25
mocean schreef op maandag 18 februari 2008 @ 23:46:
Als je tekst over meerde regels wil in JS moet je zoiets doen:

code:
1
2
var a='test 1'
      + 'test' 2;
Eigenlijk:

code:
1
2
var a='test 1'
      + 'test 2';


of om het in mijn ogen mooier te maken (maar da's persoonlijk):

code:
1
2
var a="test 1"
      + "test 2";
Pagina: 1