[JS] GetElementByID gaat niet goed in FF

Pagina: 1
Acties:

  • J3roen
  • Registratie: Januari 2000
  • Niet online

J3roen

Intentionally left blank

Topicstarter
Ik heb een absolute beginner met Javascript, tot nu toe alleen serverside gewerkt.

Maar goed, ik wil er nu mee beginnen en ben bezig als test projectje met een simpele ajax applicatie
waarmee ik de output van een XML file wil tonen.

Ik ben zover dat ik middels Ajax die file binnenkrijg, dat werkt prima. Maar nu wil ik gaan debuggen met het parsen van de XML door innerHTML te bruiken om te debug output te genereren.

Test: http://www.home.intellit.nl/np/ajax.html

Probleem: IE zet mijn stukje test code tussen de DIV neer als ik op de button druk, maar FF niet. Die geeft als foutmelding "target has no properties". Waaruit ik herleid dat getElementbyID niet goed werkt.

Wat doe ik verkeerd?

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
   <script language = "javascript">
      var XMLHttpRequestObject = false; 
      var target = false;
      
      if (window.XMLHttpRequest) {
        XMLHttpRequestObject = new XMLHttpRequest();
        XMLHttpRequestObject.overrideMimeType("text/xml");
      } else if (window.ActiveXObject) {
        XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
      }

      function getnowplaying(DivID)
      {
        if(XMLHttpRequestObject) {
          XMLHttpRequestObject.open("GET", "index.php?output=xml"); 

          XMLHttpRequestObject.onreadystatechange = function() 
          { 
            if (XMLHttpRequestObject.readyState == 4 && 
              XMLHttpRequestObject.status == 200) {
              
            var xmlDocument = XMLHttpRequestObject.responseXML;
            generate_output(xmlDocument, DivID);
            } 
          } 

          XMLHttpRequestObject.send(null); 
        }
      }

      function generate_output(xmlDocument, DivID)
      {
        // Debug
        alert(DivID);
        var target = document.getElementById(DivID);
        target.innerHTML = "Ok dit is een stukje tekst."; 
      }
      
    </script>

  • HyperioN
  • Registratie: April 2003
  • Laatst online: 31-10 21:55
Is het toevallig een div in een table?
Firefox ondersteunt in dat rare geval de innerHTML niet geloof ik.. weet ik niet helemaal zeker dat het precies dat is, maar er is zo'n raar geval wanneer het niet werkt.

[ Voor 5% gewijzigd door HyperioN op 27-11-2006 01:51 ]


  • J3roen
  • Registratie: Januari 2000
  • Niet online

J3roen

Intentionally left blank

Topicstarter
HyperioN. schreef op maandag 27 november 2006 @ 01:51:
Is het toevallig een div in een table?
Firefox ondersteunt in dat rare geval de innerHTML niet geloof ik.. weet ik niet helemaal zeker dat het precies dat is, maar er is zo'n raar geval wanneer het niet werkt.
Nee is eigenlijk heel basic:

HTML:
1
2
3
4
5
6
7
8
9
10
11
  <body>
    <h1>Now Playing</h1>

    <form>
      <input type = "button" value = "Get Now playing" 
        onclick = "getnowplaying('TargetDiv');"> 
    </form>

    <div id="targetDiv">Druk op de knop en je deze tekst zou vervangen moeten worden.</div>

  </body>

  • Alex)
  • Registratie: Juni 2003
  • Laatst online: 18-11 20:57
Gevonden:
getnowplaying('TargetDiv');

De targetDiv heet daar TargetDiv (met hoofdletter T), en aangezien getElementById case-sensitive is kan hij hem niet vinden.

We are shaping the future


  • J3roen
  • Registratie: Januari 2000
  • Niet online

J3roen

Intentionally left blank

Topicstarter
Alex) schreef op maandag 27 november 2006 @ 02:00:
Gevonden:
getnowplaying('TargetDiv');

De targetDiv heet daar TargetDiv (met hoofdletter T), en aangezien getElementById case-sensitive is kan hij hem niet vinden.
Thanks! that's it! Zo makkelijk dat je daar overheen kijkt (helemaal als je er al een uur mee aan rotzooien bent ;)) IE is natuurlijk weer niet strict, dus vandaar dat het daar wel werkte.

Nu op naar het moeiljikere gedeelte (XML parsen en daar output van maken). Maar dat is voor morgen ;)

[ Voor 10% gewijzigd door J3roen op 27-11-2006 02:05 ]