谷歌地图在IE上无法运行。

3

我有一个谷歌地图要在页面上显示,在其他浏览器上都能正常工作,除了IE8,不确定以上版本的IE是否也会出现问题。

问题是大部分用户使用IE,我想解决为什么在IE上不能正常工作的问题?

$table = "";
        while ( $row = mysql_fetch_array($result)) {

            $table .= "<table border = \"1\" width=\"800px\">  

                    <tr><td style = \"background:#EEEEEE;\"><b>Arka</b></td>   <td align=\"left\" width= \"220px\" style = \"background:#EEEEEE;\">{$row['arka']}</td> <td width = \"480px\" rowspan = \"4\"> <div style = \"width:480px; height:230px;\" id= \"div-{$row['id']}\">Map here</div></td> </tr>
            <tr><td><b>Orari</b></td>  <td align=\"left\">{$row['orari']}</td></tr>  
            <tr><td><b>Pauza</b> </td>  <td align=\"left\">{$row['pauza']}</td></tr>  
            <tr><td><b>Shtune</b></td> <td align=\"left\">{$row['shtune']}</td></tr>  
            </table> <br>";

            echo '<script type="text/javascript" language="javascript">loadMap("'.$row['adresa'].'",'.$row['id'].');</script>';

            }
            echo $table;
                ?>

以下是加载地图的函数:

function loadMap(street,div_id) {


$.ajax({ 
        type: 'GET', 
        url: "http://maps.googleapis.com/maps/api/geocode/json?address="+street+",Prishtina&sensor=true", 
        dataType: 'json',
        success: function (data) { 

            $.each(data, function() {
                $.each(this, function(key, value) {
                    switch (key) {

                        case "lat":

                        alert(value) // access to this node works fine                      
                        break;

                        case "lng":

                        alert(value) // access to this node works fine                      
                        break;

                        default: 
                        //window.alert(divid);

                        var myCenter=new 
           google.maps.LatLng(value.geometry.location.lat,value.geometry.location.lng);
                        var mapProp = {
                            center: myCenter,
                            zoom:17,
                            mapTypeId: google.maps.MapTypeId.ROADMAP
                        };

                        var map = new           
                            google.maps.Map(document.getElementById("div-" +  
                            div_id),mapProp);
                        var marker = new google.maps.Marker({
                            position: myCenter,
                            title:'Click to zoom',
                            //icon: 'img/logo3.png'


                        });

                        marker.setMap(map);

        // Zoom to 9 when clicking on marker
        google.maps.event.addListener(marker,'click',function() {
            map.setZoom(9);
            map.setCenter(marker.getPosition());
        });

        break;
           }       
               });
                   });
                   }
                   });

我们曾经遇到过同样的问题 - 没有时间找出IE失败的原因 - 因此建议用户使用其他浏览器。 - suspectus
这太荒谬了... 这也应该有解决方案... - Lulzim
你是否已经包含了http://excanvas.sourceforge.net/呢?它应该可以解决你所描述的问题。 - abc123
2
这是一个 .js 文件,您需要将其包含在头部中,通常使用只有在 IE8 以下版本时才会出现的标签。 <script language="javascript" type="text/javascript" src="Path/to/excanvas.min.js"></script> 使用 <![if !IE]> 标签来引用非 IE 浏览器的脚本文件:<script src="your-non-IE-script.js" type="text/javascript"></script> <![endif]> - abc123
请提供需要翻译的英文内容,谢谢。 - abc123
显示剩余5条评论
1个回答

1
要使用任何基于Canvas的东西(几乎所有Google对象都是),您需要包含excanvas
只需在您的HTML的head标签中添加以下内容即可。
<script language="javascript" type="text/javascript" src="Path/to/excanvas.min.js"></script>

要让它只在IE中加载,请执行以下操作:

仅限IE,请执行以下操作:

<![if !IE]>
    <script language="javascript" type="text/javascript" src="Path/to/excanvas.min.js"></script>
<![endif]>

我把它们添加到头文件中并下载了库...但仍然不起作用:S - Lulzim
我不知道为什么Sublime将<![if !IE]>和<![endif]>标记为突出显示的语法,这是有问题吗? - Lulzim
不,但大多数集成开发环境不会识别它。您有这个的jsfiddle吗? - abc123

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