谷歌地图:在IE浏览器上无法使用的简单应用程序

3
我们有一个简单的Google Maps交通应用程序,网址为:http://www.avonandsomerset.police.uk/newsroom/traffic/ 最近,它在IE浏览器中出现了问题。在这个时候,它使用的是API V2,所以我已经升级到了V3,但在IE浏览器中仍然无法正常工作。
在Chrome和Firefox中它可以正常工作,但在所有版本的IE(6,7,8)中,Google地图无法完全加载。
问题: Google地图DIV通常会加载所有控件(缩放、由Google提供的动力、地图类型),但实际的地图瓦片在IE中不会出现。我只能看到DIV的灰色背景。
我尝试过: 我将JavaScript代码注释掉,只剩下以下内容,但仍然存在同样的问题:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script> 

<script type="text/javascript" > 

    var map;

    $(document).ready(function () {
        initialize(); // Set-up Google map        
    });

    function initialize() {
        var options = {
            zoom: 9,
            center: new google.maps.LatLng(51.335759, -2.870178),
            mapTypeId: google.maps.MapTypeId.ROADMAP
        };
        map = new google.maps.Map(document.getElementById("googleMap"), options);
    }

</script>

1
哦!我曾经遇到过这个问题!试着回想一下我是怎么解决的... - GlenCrawford
谷歌的示例在您的IE浏览器上能正常工作吗?http://code.google.com/apis/maps/documentation/v3/examples/index.html - Daniel Vassallo
是的,Google地图示例确实有效。这很奇怪,因为我最初从一个示例中获取了上面的代码。看起来页面上还有其他干扰因素。 - Peter Bridger
3个回答

1

我完全是凭记忆来的,但是尝试在创建Map对象之前插入var,并删除顶部的var map。所以:

var map = new google.maps.Map...

我可以自信地说,问题出在 IE 和全局/局部变量上,即你的 map 变量。

我已经按照你的建议尝试过了,注释掉全局变量“var map”,并将“var map”限定在initialize()函数内部 - 但地图仍然无法正确加载。 - Peter Bridger

1

我终于找到了问题所在。

原来是有人在我们的主页面中包含了sleight.js脚本。

这个JavaScript旨在使IE5.5+中的PNG透明度正常工作,但是它会影响Google Maps的使用。


0

我不确定,但可能是由于浏览器差异导致函数提升的问题。尝试在文档准备好之前声明你的初始化函数。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接