Internet explorer 谷歌地图API&;Internet Explorer 8/9
由于某些原因,通过Javascript API的Google地图无法在Internet Explorer中正确加载 它在Google Chrome和Firefox中显示得非常好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,
<!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异步应该可以解决这个问题,因为您可以提供一个回调方法来初始化组件。我正在使用此方法在我的项目中加载贴图