3

ページに表示する Google マップがあります。IE 8 以外の他のブラウザでは問題なく動作しますが、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;
           }       
               });
                   });
                   }
                   });
4

1 に答える 1

1

Canvasベースのものを使用する(ほとんどすべての Google オブジェクトがそうです)。excanvasを含めたいと思うでしょう。

headHTML のタグに次のコードを追加するだけです。

<script language="javascript" type="text/javascript" src="Path/to/excanvas.min.js"></script>

IEでのみロードするには、次の手順を実行します。

<![if !IE]>
    <script language="javascript" type="text/javascript" src="Path/to/excanvas.min.js"></script>
<![endif]>
于 2013-07-10T13:39:57.237 に答える