11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,
J'ai récupéré un code Javascript D'api Google.
Le code fonctionne correctement sous Firefox mais pas sous IE.
La fonction "initialize" fonctionne mais semble t il pas la fonction "codeAddress".
Le code ci dessous:

<script type="text/javascript">
var geocoder;
  var map;
  function initialize() {
    geocoder = new google.maps.Geocoder();
    var latlng = new google.maps.LatLng(-34.397, 150.644);
    var myOptions = {
      zoom: 10,
      center: latlng,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    }
    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
  }
  function codeAddress() {
  var address = "###ADRESSE###,###VILLE###,###CODEPOSTAL###,France";
    geocoder.geocode( { 'address': address}, function(results, status) {
      if (status == google.maps.GeocoderStatus.OK) {
        map.setCenter(results[0].geometry.location);
        var marker = new google.maps.Marker({
            map: map, 
            position: results[0].geometry.location
        });
      } else {
        alert("Geocode was not successful for the following reason: " + status);
      }
    });
  }
</script>

<script  language="javascript">
 if (document.addEventListener) {
window.addEventListener('load', initialize, false);
window.addEventListener('load', codeAddress, false);}
else {
window.attachEvent('onload', initialize);
window.attachEvent('onload', codeAddress);
}
</script>

Si quelqu'un a une idée ...
Bonjour,

Tu peux essayer en enlevant tes écouteurs d'événements à la fin de ton code puis en déclarant les deux fonctions au chargement de ta page avec l'attribut onload dans ta balise body :

<body onload="initialize(); codeAddress();">


Cela devrait fonctionner.

Autre alternative, déclarer ton objet geocoder en début de code :

remplacer :

var geocoder;


par

var geocoder = new google.maps.Geocoder(); 


puis enlever sa déclaration dans ta fonction initialize().

Cdlt,