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

[JS] Split doet het niet in IE

Pagina: 1
Acties:

  • ZpAz
  • Registratie: September 2005
  • Laatst online: 16:32
Hallo,

Ik haal via AJAX een string op welke informatie over diverse objecten ophaalt (grootte, positie, inhoud enz)

Na elk object in de string komt er een #, en na elk informatie punt (hoogte, breedte, top, left) komt er een komma.

Nu split ik eerst de string op het # om zo een array te krijgen met de diverse objecten.

Daarna split ik elk onderdeel van de array op de komma, zodat ik de waardes van hoogte, breedte enz kan uitlezen.

Zie deze code die ik er voor gebruik.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    returnText = getContent('ajax/render.php'); //get all content boxes
boxes = returnText.substr(0,returnText.length - 1).split('#'); //split it so we have an array we can use
        for(i = 0;i<boxes.length; i++) {
            info = boxes[i].split(',');
            //create an element, and place right values
            box = document.createElement('div');
            box.className = 'box';
            box.id = 'obj' + info[0];
            box.style.width = info[1] + 'px';
            box.style.height = info[2] + 'px';
            box.style.left = info[3] + 'px';
            box.style.top = info[4] + 'px';
            box.innerHTML = getContent('ajax/boxes.php?action=show&objid=' + info[0]);;
            //apply
            document.getElementById('container').appendChild(box);
        }


Als ik dit in Firefox doe, geen probleem het werkt als een tierelier, alle objecten worden uit de database gehaald en op hun plaats gezet.

Doe ik dit in IE dan krijg ik de volgende error:
Error: object doesnt support this property or method
En dat geld voor deze lijn.

code:
1
info = boxes[i].split(',');


Dus ik heb geprobeert om ergens anders op te splitten, ik dacht mischien kan je niet op een komma splitten, maar dit hielp ook niets.

Ook heb ik geprobeert de boxes[i] eerst in een tijdelijke variabele te stoppen, en daar op te splitten. Maar dit leverde ook geen positief resultaat op. Als ik boxes[i] alert, dan krijg ik wel netjes de inhoud te zien die ik graag wil splitten, boxes[i] is dus niet leeg en bevat de juiste inhoud.

Ook heb ik boxes[i].toString.split(','); geprobeert maar dan nog krijg ik dezelfde error.

Weet iemand wat ik fout doe? Op google kom ik ook niet echt informatie tegen die nuttig is.

Alvast bedankt.

Claude: "Domain patterns emerge from iteration, not generation." - Tweakers Time Machine Extension | Chrome : FF


  • MueR
  • Registratie: Januari 2004
  • Laatst online: 12:22

MueR

Admin Devschuur® & Discord

is niet lief

Ik zou gewoon eens kijken naar JSON. Dat is een goede manier om een array over te sturen. Hier kom je in de problemen wanneer er ergens een "echte" komma staat.

Anyone who gets in between me and my morning coffee should be insecure.


  • ZpAz
  • Registratie: September 2005
  • Laatst online: 16:32
Maar nergenst staat een 'echte' komma :) Ik genereer zelf vanuit php die string, die klopt dus altijd.

Claude: "Domain patterns emerge from iteration, not generation." - Tweakers Time Machine Extension | Chrome : FF


  • ZpAz
  • Registratie: September 2005
  • Laatst online: 16:32
Probleem opgelost, was een div met de ID 'info' en daar struikelde IE dus over.

http://ep2.nl/showthread.php?pid=92139&#pid92139

Claude: "Domain patterns emerge from iteration, not generation." - Tweakers Time Machine Extension | Chrome : FF


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Daarom is het ook belangrijk om je variabelen in de functie-scope te declareren ;)

Intentionally left blank