谷歌地图 api javascript 在 mozilla 中不起作用

Posted

技术标签:

【中文标题】谷歌地图 api javascript 在 mozilla 中不起作用【英文标题】:Google maps api javascript doesn't work in mozilla 【发布时间】:2015-04-06 16:05:53 【问题描述】:

我在 google maps api 页面上找到了一个脚本,用户可以在其中选择位置并将数据发送到 php -> mysql。它在 chrome 和 IE 中运行良好,但是当我尝试在 mozilla 中保存位置时,它所做的只是刷新父页面。 我对javascript几乎一无所知,所以如果有人能找到错误,将不胜感激:)

代码

<!DOCTYPE html >
    <head>
        <meta name=viewport content='initial-scale=1.0, user-scalable=no' />
        <meta http-equiv='content-type' content='text/html; charset=UTF-8'/>
        <title>Google Maps JavaScript API v3 Example: Map Simple</title>
        <script type='text/javascript' src='https://maps.googleapis.com/maps/api/js'></script>
        <script type='text/javascript'>
            var marker;
            var infowindow; 

            function initialize() 
                var latlng = new google.maps.LatLng(33.137550, -42.187500);
                var options =  
                    zoom: 1, 
                    center: latlng, 
                    mapTypeId: google.maps.MapTypeId.ROADMAP    
                
                var map = new google.maps.Map(document.getElementById('map-canvas'), options);
                var html = "<table><tr><td><input type='button' value='Save Location' onclick='saveData(), window.parent.location.reload();'/></td></tr></table>";
                infowindow = new google.maps.InfoWindow(
                    content: html
                );

                function addMarker(location) 
                    if (!marker) 
                        marker = new google.maps.Marker(
                            position: location,
                            map: map
                        );
                    
                    else  marker.setPosition(location); 
                

                google.maps.event.addListener(map, 'click', function(event) 
                    addMarker(event.latLng);
                    google.maps.event.addListener(marker, 'click', function() 
                        infowindow.open(map, marker);
                    );
                );
               

            function saveData() 
                var latlng = marker.getPosition();
                var url = 'insert_location.php?lat=' + latlng.lat() + '&lng=' + latlng.lng();
                downloadUrl(url, function(data, responseCode) 
                    if (responseCode == 200 && data.length >= 1) 
                        infowindow.close();
                    
                );
            

            function downloadUrl(url, callback) 
                var request = window.ActiveXObject ?
                    new ActiveXObject('Microsoft.XMLHTTP') :
                new XMLHttpRequest;

                request.onreadystatechange = function() 
                    if (request.readyState == 4) 
                        request.onreadystatechange = doNothing;
                        callback(request.responseText, request.status);
                    
                ;

                request.open('GET', url, true);
                request.send(null);
            

            function doNothing() 


        </script>
    </head> 
    <body style='margin:0px; padding:0px;' onload='initialize()'>
        <div id='map-canvas' style='width: 100%; height: 800px'></div>
        <div id='message'></div>
    </body>
</html>

【问题讨论】:

window.parent.location.reload 在里面做什么? 【参考方案1】:

默认情况下,Javascript 并未关闭,但您的可能已关闭。

如果您想开启 Javascript,请执行以下操作:

在地址栏中输入 about:support,然后按 Enter 接受警告 搜索 javascript.enabled 确保该值为真。 (如果不是,请双击它)

像这样的陈述——“我对javascript一无所知”对你没有帮助。在您来这里要求我们其他人为您解决问题之前,请付出一些努力和研究。

【讨论】:

以上是关于谷歌地图 api javascript 在 mozilla 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

javascript 谷歌地图api javascript

在谷歌地图javascript api中 - 如何移动地图而不是标记

减少谷歌地图成本计算,只能调用谷歌地图javascript api

谷歌地图 api javascript 在 mozilla 中不起作用

javascript检查文件是不是存在与谷歌地图api

JavaScript 谷歌地图API3变得简单