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);動作していません)は、変数 "variablejs"を書き込みませんが、メソッド(//window.location.href = "http:// localhost/test2。 php?ad = "+ variablejs; Working)、URLを書き込み、変数をパラメーターとして渡すページを転送します。私がやりたいのは、同じHTMLの本文にその変数を出力することです。最初に変数を初期化してからBodyに書き込もうとしましたが、グローバル変数などのようにそのセクションにアクセスできないようです。助けてください。

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 に答える