在 HTML Body 上编写 JavaScript 变量

Write JavaScript variable on HTML Body

本文关键字:JavaScript 变量 HTML Body      更新时间:2023-09-26
<!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;工作),它将写入 url 并转发将变量作为参数传递的页面。我想做的是在同一 HTML 的正文中打印该变量。我尝试先初始化变量,然后写入 Body,但看起来该部分无法像全局变量或类似的东西那样访问。请帮忙。

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

var d = document.createElement("div");
d.appendChild(document.createTextNode(variablejs));
document.body.appendChild(d);

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

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

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