2012-06-19 58 views
2

我需要有人来领导/指导我错在哪里编码,因为我无法弄清楚我的代码出了什么问题。这段代码在IE和FF中都能正常工作,但在Chrome或Safari中无法正常工作。正确的,当我点击下拉列表选择时,它会显示所选位置的确切地图。但在我的Chrome和Safari中,它只显示了最初的地图,而不是从列表中显示选定的位置。JavaScript onclick not chrome

<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Google Maps JavaScript API Example</title> 

    <script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?key=AIzaSyAn5fGcWgolNQy8U9PV2YsP1P3Knn23Jro&sensor=false"></script> 
    <script type="text/javascript"> 
    // Variables Initialize 
    var marker; 
    var map; 
    var image = "flag.png"; 
    function initialize(lat,lng) { 
     var singapore = new google.maps.LatLng(lat,lng); 
     var settings = { 
     zoom: 11, 
     mapTypeId: google.maps.MapTypeId.ROADMAP, 
     center: singapore, 
     mapTypeControl: true, 
     mapTypeControlOptions: { 
      style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, 
      position: google.maps.ControlPosition.TOP_RIGHT}, 
     navigationControl: true, 
     navigationControlOptions: { 
      style: google.maps.NavigationControlStyle.SMALL}, 
     panControl: true,  
     panControlOptions: { 
      position: google.maps.ControlPosition.RIGHT_TOP}, 
     zoomControl: true, 
     zoomControlOptions: { 
      style: google.maps.ZoomControlStyle.DEFAULT, 
      position: google.maps.ControlPosition.LEFT_TOP}, 
     scaleControl: true,  
     scaleControlOptions: { 
      position: google.maps.ControlPosition.BOTTOM_RIGHT} 
     }; 
     map = new google.maps.Map(document.getElementById("map_canvas"), settings); 
     marker = new google.maps.Marker({ 
      map: map, 
      draggable:false, 
      animation: google.maps.Animation.DROP, 
      position: singapore, 
      title:"Singapore", 
      icon: image 
     }); 
    } 
    </script> 
    </head> 
    <body onload="initialize('1.28563','103.80918')" onunload="GUnload()"> 
    <select> 
     <option onclick="initialize('1.28563','103.80918')">--Select Location--</option> 
     <option onclick="initialize('1.28527','103.82682')">Blk 18A Jalan Membina</option> 
     <option onclick="initialize('1.28277','103.82562')">Blk 26 Jalan Membina</option>   
     <option onclick="initialize('1.31546','103.766363')">Blk 321-326 Clementi Ave 5</option> 
    </select> 
    <div id="map_canvas" style="width: 500px; height: 300px"></div> 
    </body> 
+1

第一件事,第一,你检查控制台的任何错误? –

+0

嗨克里斯蒂安瓦尔加,我检查使用http://validator.w3.org/和我的Chrome的JavaScript控制台 – kokloong

回答

1

onclick添加到<option>似乎不是一个好主意;我会改用在<select>onchange并使用value属性存储纬度/经度来代替:

<select onchange="movemap(this)"> 
    <option value="1.28563,103.80918">Blk 18a Jln Membina</option> 
    ... 

function movemap(sel) 
{ 
    var opt = sel.options[sel.selectedIndex], 
    vals = opt.value.split(','); 

    initialize(vals[0], vals[1]); 
} 
+0

嗨,杰克,我试图ammend作为你的片段,但现在所有的浏览器也无法正常工作。 – kokloong

+0

@kokloong没有测试我的代码,这就是为什么:)我已经更新了答案。 –

+0

非常感谢。我的问题解决了。 ;-) – kokloong

0

关于在您的代码中删除center: ramkySG怎么办?

+0

没有用,实际上它是错字错误。而不是'ramkySG'这是'新加坡' – kokloong