Toon posts:

[XML] xmldoc.load werkt wel in IE, niet in FF

Pagina: 1
Acties:
  • 125 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Hai allemaal,

Ik heb een javascript waarbij een XML document wordt ingelezen. Gek genoeg werkt dit script prima in IE maar schijnt FF het te weigeren. Ik heb een check die adhv de browser bepaald op welke manier het XML bestand moet worden ingelezen:

1: Non IE
2. IE
3. Unsupported

code:
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
function importXML(filename, elm_id)
{
    if (document.implementation && document.implementation.createDocument)
    {
        xmlDoc = document.implementation.createDocument("", "", null);
        var isLoaded = xmlDoc.load("http://" + document.domain + "/xml/pagelist.xml");
        
        if (isLoaded == true) 
        {
        createTable(elm_id);
        }  
    }
    else if (window.ActiveXObject)
    {
        xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
        xmlDoc.onreadystatechange = function () {
            if (xmlDoc.readyState == 4) createTable(elm_id)
        };
        xmlDoc.load("http://" + document.domain + "/xml/pagelist.xml");
    }
    else
    {
        alert('Your browser can\'t handle this script');
        return;
    }
}


Als ik nu een loopje pak om de juiste waardes uit te lezen:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function createTable(elm_id)
{
    var x = xmlDoc.getElementsByTagName('page');
    var myList = document.getElementById(elm_id);
    
    
    for (i=0;i<x.length;i++)
    {
        var newOptElm = document.createElement('OPTION');
        newOptElm.text = x[i].childNodes[0].firstChild.nodeValue;
        newOptElm.value = x[i].childNodes[1].firstChild.nodeValue;
        myList.options.add(newOptElm);
    }
}


Dit werkt prima in IE, maar in de javascript console van FF krijg ik niets te zien. Als ik het pad van het XML bestand aanpas krijg ik een melding dat x[0] geen inhoud heeft.

Hoe kan ik controleren dat FF het XML bestand correct heeft ingelezen en dat er ook daadwerkelijk inhoud in zit? Wordt hier al een beetje moedeloos van...

  • whoami
  • Registratie: December 2000
  • Laatst online: 14-02 20:35
Dit is client-side shizzle, en hoort dus bijgevolg thuis in Webdesign. (bij de buren dus)

PRG -> *over de schutting* -> Webdesign

https://fgheysels.github.io/


Verwijderd

Topicstarter
Ok, sorry about that...had het idee dat Webdesign wat meer over designen ging en minder over code.

Een voorbeeld waarbij het WEL werkt:

http://www.quirksmode.org/dom/importxml.html

Ik heb delen van die code gewoon overgenomen maar kennelijk doe ik toch iets fout :/

  • BHR
  • Registratie: Februari 2002
  • Laatst online: 06-02 11:38

BHR

JavaScript:
1
2
3
4
5
var isLoaded = xmlDoc.load("http://" + document.domain + "/xml/pagelist.xml");
if (isLoaded == true) 
{
  createTable(elm_id);
}  


Dat is toch niet helemaal hetzelfde als van het voorbeeld waarvan jij zegt dat je het hebt overgenomen.
Zie het xmldoc.onload stukje in het voorbeeld, dat bevat de functie die moet worden uitgevoerd na het laden van de xml

[ Voor 18% gewijzigd door BHR op 21-08-2006 13:17 ]

No amount of key presses will shut off the Random Bug Generator


Verwijderd

Topicstarter
Bedankt voor je reactie,

Waar de functie wordt aangeroepen maakt geen verschil, heb namelijk beide opties al geprobeerd. Ik ben nu weer teruggegaan naar exact dezelfde code als in het voorbeeld (zie url eerdere post).

Ik heb het probleem weten te traceren naar het gebruik van tinyMCE (editor). Als ik een plat HTML bestand pak en daar de code in plaats en het XML bestand op dezelfde locatie laat staan, dan werkt het prima. Zodra ik het implementeer in tinyMCE werkt het in IE nog wel maar in FF niet meer.

Dusseh, iemand ervaring met tinyMCE, met name de advlink plugin ??