编辑:已解决,已使用工作代码更新。谢谢大家!

我有一个在jsFiddle中运行的反向地理定位应用程序,但似乎无法使其在正常环境中正常工作。

JS小提琴:http://jsfiddle.net/vd3mK/

本地代码:

<!DOCTYPE html>
<html>
    <head>
        <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>​​
        <script>
        var geocoder;
        function initialize() {

            geocoder = new google.maps.Geocoder();
            codeLatLng();
        }

        function codeLatLng() {
            var input = document.getElementById("latlng").getAttribute('value');
            var latlngStr = input.split(",", 2);
            var lat = parseFloat(latlngStr[0]);
            var lng = parseFloat(latlngStr[1]);
            var latlng = new google.maps.LatLng(lat, lng);
            geocoder.geocode({
                'latLng': latlng
            }, function(results, status) {

                document.getElementById("test").innerHTML = '' + (results[0].formatted_address); + ''
            });
        }
​       </script>
    </head>
    <body onload="initialize()">
        <div id="latlng" value="43.4494152,-80.4881973"></div>

        <div id="test"></div>
    </body>
</html>


当本地版本在我的浏览器中运行时,它会给我:“”。

是什么原因造成的?我如何解决它?谢谢!

工作代码

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
        <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>​​
        <script type="text/javascript">
            var geocoder;
            function codeLatLng() {
                var input = document.getElementById("latlng").getAttribute('value');
                var latlngStr = input.split(",", 2);
                var lat = parseFloat(latlngStr[0]);
                var lng = parseFloat(latlngStr[1]);
                var latlng = new google.maps.LatLng(lat, lng);
                geocoder.geocode({
                    'latLng' : latlng
                }, function(results, status) {

                    document.getElementById("test").innerHTML = '' + (results[0].formatted_address);
                    +''
                });
            }

            function initialize() {

                geocoder = new google.maps.Geocoder();
                codeLatLng();
            }
       </script>
    </head>
    <body onload="initialize();">
        <div id="latlng" value="43.4494152,-80.4881973"></div>

        <div id="test"></div>
    </body>
</html>

最佳答案

您需要通过meta标签设置页面的编码,但是您还需要以UTF-8编码实际页面(文件)。

10-06 00:41