2011-06-18 4 views
0
<!DOCTYPE html> 
<html> 
    <head> 

    <link rel="stylesheet" href="style.css" type="text/css"> 
<script src="http://openlayers.org/api/2.10/OpenLayers.js" type="text/javascript"> 
     var map, layer; 
     function init(){ 
      map = new OpenLayers.Map('map', {controls: [ 
       new OpenLayers.Control.Navigation({documentDrag: true}), 
       new OpenLayers.Control.PanZoom(), 
       new OpenLayers.Control.ArgParser(), 
       new OpenLayers.Control.Attribution() 
      ]}); 
      layer = new OpenLayers.Layer.WMS("OpenLayers WMS", 
        "http://vmap0.tiles.osgeo.org/wms/vmap0", 
        {layers: 'basic'}); 
      map.addLayer(layer); 
      map.zoomToMaxExtent(); 
     } 
    </script> 
    </head> 
    <body onload="init()"> 
    <h1 id="title">OpenLayers Document Drag Example</h1> 

    <div id="tags"> 
     drag 
    </div> 

    <div id="shortdesc">Keep on dragging even when the mouse cursor moves outside of the map</div> 

    <div id="map" class="smallmap"></div> 

    <div id="docs"> 
     <p>This example shows how to make a map draggable outside of the map itself.</p> 
    </div> 
    </body> 

</html> 

C'est mon code html avec le javascript. Mon firebug lève l'erreur init() non définie. Quelle peut être l'erreur?Erreur Javascript de init() non définie. Comment supprimer cette erreur?

Répondre

4

Votre élément <script> charge son contenu à partir d'une ressource externe (http://openlayers.org/api/2.10/OpenLayers.js) puisque vous avez spécifié cette URL dans son attribut src.

Par conséquent, le navigateur ignorera la réelle contenu de l'élément, donc init() ne sera pas défini.

Essayez d'utiliser deux éléments <script> à la place:

<script src="http://openlayers.org/api/2.10/OpenLayers.js" type="text/javascript"> 
</script> 

<script type="text/javascript"> 
    var map, layer; 
    function init(){ 
     map = new OpenLayers.Map('map', {controls: [ 
      new OpenLayers.Control.Navigation({documentDrag: true}), 
      new OpenLayers.Control.PanZoom(), 
      new OpenLayers.Control.ArgParser(), 
      new OpenLayers.Control.Attribution() 
     ]}); 
     layer = new OpenLayers.Layer.WMS("OpenLayers WMS", 
       "http://vmap0.tiles.osgeo.org/wms/vmap0", 
       {layers: 'basic'}); 
     map.addLayer(layer); 
     map.zoomToMaxExtent(); 
    } 
</script> 
+0

Merci. Bien que l'erreur disparue, il n'y a toujours aucun signe de l'affichage de la carte OpenLayers. – IamH1kc

+0

Je ne suis pas familier avec Open Layers, mais l'argument ''map'' ne devrait-il pas faire partie de l'objet passé à' Map() '? Quelque chose comme 'Map ({div:" map ", contrôles: ...});'? –