0
<!DOCTYPE html>
<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: Reverse Geocoding</title>
        <link
        href="https://developers.google.com/maps/documentation/javascript/examples/default.css"
        rel="stylesheet" type="text/css" />
        <script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?sensor=false"></script>
        <script type="text/javascript">
            var geocoder;

            var variablejs;

            geocoder = new google.maps.Geocoder();

            var input = "41.021355,-96.020508";
            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) {
                if (status == google.maps.GeocoderStatus.OK) {
                    if (results[0]) {
                        variablejs = results[0].formatted_address; * * //document.write(variablejs); Not working**
                        *
                        //window.location.href = "http://localhost/test2.php?ad="+ variablejs; Working*
                    } else {
                        alert("No results found");
                    }
                } else {
                    alert("Geocoder failed due to: " + status);
                }
            }); * * document.write(variablejs); * * //writes undefined variable (not working)
        </script>
    </head>

    <body></body>

</html>

该部分(//document.write(variablejs); Not working)不会写入变量“variablejs”,但是当我使用该方法时(//window.location.href = "http://localhost/test2. php?ad="+ variablejs; Working ),它会写入 url 并转发将变量作为参数传递的页面。我想要做的是在同一 HTML 的正文中打印该变量。我尝试先初始化变量然后写入正文,但看起来该部分无法像全局变量或类似的东西那样访问。请帮忙。

4

2 回答 2

3

document.write加载文档后,如果不覆盖所有内容,您将无法使用。您将需要操作 DOM,例如document.body.innerText=variablejs;. 但我会推荐

var d = document.createElement("div");
d.appendChild(document.createTextNode(variablejs));
document.body.appendChild(d);
于 2012-04-19T07:13:50.047 回答
1

您在传递给 geocoder.geocode() 的回调函数中为 variablejs 赋值。这意味着您在调用回调之前尝试访问和写入它,因此您将看不到任何值集。

在这些情况下,使用 Firebug 或类似工具进行调试会有所帮助。

此外,在加载文档后,您不能像这样使用 docuemnt.write,您需要进行一些 DOM 操作。

于 2012-04-19T07:19:10.687 回答