Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Internet explorer 谷歌地图API&;Internet Explorer 8/9_Internet Explorer_Api_Google Maps_Internet Explorer 8_Internet Explorer 9 - Fatal编程技术网

Internet explorer 谷歌地图API&;Internet Explorer 8/9

Internet explorer 谷歌地图API&;Internet Explorer 8/9,internet-explorer,api,google-maps,internet-explorer-8,internet-explorer-9,Internet Explorer,Api,Google Maps,Internet Explorer 8,Internet Explorer 9,由于某些原因,通过Javascript API的Google地图无法在Internet Explorer中正确加载 它在Google Chrome和Firefox中显示得非常好 <!DOCTYPE html> <html> <head> <title>Google Maps</title> <meta name="viewport" content="initial-scale=1.0,

由于某些原因,通过Javascript API的Google地图无法在Internet Explorer中正确加载

它在Google Chrome和Firefox中显示得非常好

<!DOCTYPE html>
<html> 
    <head> 
        <title>Google Maps</title>
        <meta name="viewport" content="initial-scale=1.0, user-scalable=no"/> 
        <meta http-equiv="content-type" content="text/html; charset=UTF-8"/> 
        <link href="https://code.google.com/apis/maps/documentation/javascript/examples/default.css" rel="stylesheet" type="text/css" />
        <style>
            #map_canvas {font: 12px Arial, Helvetica, sans-serif; color:#3B3B3B; height:400px; width: 700px;}
            .text {text-align:center; color:#3B3B3B;}
        </style>
        <script type="text/javascript" src="https://maps.google.com/maps/api/js?sensor=true"></script> 
        <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: 15,
              center: latlng,
              mapTypeId: google.maps.MapTypeId.ROADMAP
            }
            map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
          }

          function codeAddress() {
            var address = '50 Bond Street, London';
            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 {
            //Not Found
              }
            });
          }
        </script> 
        <script type="text/javascript">
            initialize(); 
            codeAddress();
        </script>
    </head> 
    <body onload="initialize(); codeAddress();"> 
        <div id="map_canvas"></div> 
    </body> 
</html> 

谷歌地图
#地图画布{字体:12px Arial,Helvetica,无衬线;颜色:3b3b;高度:400px;宽度:700px;}
.text{text align:居中;颜色:#3b3b;}
var地理编码器;
var映射;
函数初始化(){
geocoder=新的google.maps.geocoder();
var latlng=新的google.maps.latlng(-34.397150.644);
变量myOptions={
缩放:15,
中心:拉特林,
mapTypeId:google.maps.mapTypeId.ROADMAP
}
map=new google.maps.map(document.getElementById(“map_canvas”),myOptions);
}
函数代码地址(){
var地址=‘伦敦邦德街50号’;
geocoder.geocode({'address':address},函数(结果,状态){
if(status==google.maps.GeocoderStatus.OK){
map.setCenter(结果[0].geometry.location);
var marker=new google.maps.marker({
地图:地图,
位置:结果[0]。几何体。位置
});
}否则{
//找不到
}
});
}
初始化();
代码地址();

奇怪的是,如果我在身体上放一个onmouseover并调用函数,它似乎又开始工作了?但它显然每次都会重新加载地图

我看到您正在从body onload事件调用函数。可能当时没有正确加载脚本

尝试以这种方式加载api。您可以同步加载API,并指定一个回调函数来初始化内容

<script type="text/javascript" src="http://www.google.com/jsapi?autoload=%7Bmodules%3A%5B%7Bname%3A%22maps%22%2Cversion%3A3%2Cother_params%3A%22sensor%3Dfalse%22%7D%5D%7D"></script> 
<script type="text/javascript"> 
  function initialize() {
    var myLatlng = new google.maps.LatLng(-34.397, 150.644);
    var myOptions = {
      zoom: 8,
      center: myLatlng,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    }
    var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
  }

  google.setOnLoadCallback(initialize);
</script>

函数初始化(){
var mylatng=new google.maps.LatLng(-34.397150.644);
变量myOptions={
缩放:8,
中心:myLatlng,
mapTypeId:google.maps.mapTypeId.ROADMAP
}
var map=new google.maps.map(document.getElementById(“map_canvas”),myOptions);
}
setOnLoadCallback(初始化);

[编辑:以前的解决方案不起作用。真正的解决方案在评论中,我只是把它放在这里]

Hi Maxime,这返回了一个错误。我认为这是因为它在主体加载之前无法附加标记。它返回一个空错误。我认为值得注意的是,它是从另一个有iFrame的页面调用的。我认为这可能是问题背后的原因。事实上,如果你在页面加载后发生的mouseover事件上绑定你的函数,那么这一切都可以正常工作,这让我觉得IE onload事件上的脚本加载不正确。加载API异步应该可以解决这个问题,因为您可以提供一个回调方法来初始化组件。我正在使用此方法在我的项目中加载贴图