11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,
J'ai eu la surprise de découvrir que mon code javascript (API google maps) fonctionne parfaitement sous Chrome mais les Markers ne sont pas affichés avec IE7 uniquement la carte s'affiche. J'ai mis un: alert("debug"); mais sous IE7 on n'y va pas... dingue...
J'ai l'impression que c'est la fonction xml.documentElement.getElementsByTagName("marker") qui plante. Les données proviennent d'un fichier Xml. Au debug la variable data est correctement remplie par le parse : GXml.parse(data)
Une idée sur cette drolerie ?
Voici le code:

<script type="text/javascript">
//<![CDATA[

function load() {
// if (GBrowserIsCompatible()) {
//on converti les variables ASP en variables Javascript
var JGLat = "<%=GLat%>";
var JGLng = "<%=GLng%>";
var JGZoom = "<%=GZoom%>";
JGZoom = parseInt(JGZoom)
var Jmy_xml = "<%=my_xml%>";

// Création de mini icones
var icon = new GIcon();
icon.image = "img/picto_chart.png";
icon.shadow = "img/shadow_chart.png";
icon.iconSize = new GSize(26, 28);
icon.shadowSize = new GSize(41, 28);
icon.iconAnchor = new GPoint(6, 20);
icon.infoWindowAnchor = new GPoint(5, 1);

var map = new GMap2(document.getElementById("map"));
map.setMapType(G_PHYSICAL_MAP);
map.removeMapType(G_HYBRID_MAP);
map.addMapType(G_PHYSICAL_MAP);
map.addControl(new GLargeMapControl());
map.setCenter(new GLatLng(JGLat,JGLng), JGZoom);

function createMarker(point, inf1, inf2, inf3, img1, temp1, ref1) {
//var marker = new GMarker(point, {draggable: true});

var marker = new GMarker(point, icon);
var ft1="<div align='left' /div><font color='#333333' size='2' face='Verdana, Arial, Helvetica, sans-serif'><strong><br>";
var myimage="<a href='fiche_" + temp1 + ".asp?ID=" +ref1 + "' target='result_carte.asp'/>" + "<img src='images/mini/" + img1 + "'" + " width='120' height='120'/> <img src='img/n_flch0.gif' width='11' height='15'/></a>";

var allinfos = ft1 + inf1 + "</strong><br>" + myimage + "<br>" + inf2 + "<br>" + "(" + inf3 + ")";

GEvent.addListener(marker, "click", function() {
marker.openInfoWindowHtml(allinfos);
marker.enableDragging();
});
return marker;
}

GDownloadUrl(Jmy_xml, function(data) {
var xml = GXml.parse(data);

var markers = xml.documentElement.getElementsByTagName("marker");
alert("debug");

for (var i = 0; i < markers.length; i++) {
var point = new GLatLng(parseFloat(markers.getAttribute("lat")), parseFloat(markers[i].getAttribute("lng")), 9);
var marker = createMarker(point, markers[i].getAttribute("info"), markers[i].getAttribute("details"), markers[i].getAttribute("pays"), markers[i].getAttribute("image"), markers[i].getAttribute("template"), markers[i].getAttribute("ref") );
map.addOverlay(marker);
}
});

}
// }

//]]>
</script>


d'avance merci... mes nerfs vont se reposer

[/i][/i][/i][/i][/i][/i][/i]
Modifié par rdesjardins (26 Mar 2009 - 16:38)