Witam exclamation.gif!
Mam problem ze skryptem wykorzystującym GoogleMaps i XML. Skrypt działa prawidłowo pod Operą i FireFoxem, natomiast pod IE się buraczy. Po krótce co robi skrypt. Odczytuje z pliku xml dane do markerów po czym wstawia ja na mape Google. Co do IE to wypluwa taki błąd:
CODE
Wiersz: 12
Znak: 37
Błąd: nieprawidłowy argument
Kod: 0


Tak natomiast wygląda kod:
CODE

var markersXML;
var markers;
var map;
var ico;

function addMarker(markerXML){

var marker = new GMarker(new GLatLng(markerXML[4],markerXML[5]), {title: markerXML[1], icon: ico});
marker.txt = "<b>"+markerXML[0]+"</b>"+"<br />"+
markerXML[1]+"<br />"+
markerXML[2]+"<br />"+
markerXML[3];

map.addOverlay(marker);
new GEvent.addListener(marker,"click",function() {
marker.openInfoWindowHtml(marker.txt);
map.setCenter(marker.getLatLng(), 14);
});

return marker;
}

function show(number){
markers[number].openInfoWindowHtml(markers[number].txt);
map.setCenter(markers[number].getLatLng(), 14);
}

function drawMap(){

if(new GBrowserIsCompatible()){

map = new GMap2(document.getElementById("map"));
map.setCenter(new GLatLng(50.055375,19.962158), 9);
map.addControl(new GLargeMapControl());
map.addControl(new GMapTypeControl());
map.addControl(new GScaleControl());
map.addControl(new GOverviewMapControl());

GDownloadUrl('http://localhost/oknoplastMaps/districts/mp.xml',
function(data,answerCode){
if(answerCode==200){
var xml = GXml.parse(data);
var temp = xml.documentElement.getElementsByTagName('agency');
markersXML = new Array(temp.length);

for(var i=0; i<temp.length; i++){
var marker = new Array(5);

marker[0] = temp[i].childNodes[0].textContent;
marker[1] = temp[i].childNodes[1].textContent;
marker[2] = temp[i].childNodes[2].textContent;
marker[3] = temp[i].childNodes[3].textContent;
marker[4] = parseFloat(temp[i].childNodes[4].textContent);
marker[5] = parseFloat(temp[i].childNodes[5].textContent);

markersXML[i] = marker;

document.getElementById("addresses").innerHTML +=
"<b>"+marker[0]+"</b>"+"<br />"+
marker[1]+"<br />"+
marker[2]+"<br />"+
marker[3]+"<br />"+
"<a href=\"#top\" onClick=\"show("+i+");\">Pokaż na mapie</a>"+
"<br /><br />";
}

ico = new GIcon();
ico.image = "http://localhost/oknoplastMaps/logo.png";
ico.shadow = "http://localhost/oknoplastMaps/logo.png";
ico.iconSize = new GSize(32, 25);
ico.infoWindowAnchor = new GPoint(16,12);
ico.iconAnchor = new GPoint(16,12);

markers = new Array(markersXML.length);

for(i=0; i<markersXML.length; i++){
markers[i] = addMarker(markersXML[i]);
}

}else{
alert('Błąd otwarcia pliku z danymi');
}
});
}
}


W pliku html skrypt jest wywoływany:
CODE

<body onload="drawMap()" unload="GUnload()">


Metodą prób i błędów błąd pod IE znikał kiedy usunąłem tą linijkę:
CODE

markers[i] = addMarker(markersXML[i]);

ale wtedy oczywiście nic nie działało.

Dzieki za pomoc exclamation.gif!

Udało mi się znaleźć rozwiązanie tego problemu. Może ktoś będzie miał podobny kłopot, więc je przedstawię. Otóż problem tkwi w odczycie XML'a przez IE.

Zastępując linijki
Kod
temp[i].childNodes[0].textContent

następującymi
Kod
GXml.value(temp[i].childNodes[0])

wszystko działa poprawnie.