Javascript googlemap api document.write()不起作用

时间:2013-11-21 14:59:45

标签: javascript google-maps-api-3

<script
        src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>
    <script>
        var geocoder = new google.maps.Geocoder();      

    <%for (String st : t.keySet()) {%>  
        printGeocode(   <%=t.get(st)[1]%>       ,   <%=t.get(st)[0]%>       );      
    <%}%>
        function printGeocode(x, y) {
            document.write("Test Check1<br>"); // work fine
            alert("test Check1"); // work fine
            var latlng = new google.maps.LatLng(x, y);
            geocoder.geocode({
                'latLng' : latlng
            }, function(results, status) {
                if (status == google.maps.GeocoderStatus.OK) {
                    if (results[1]) {                       
                        document.write(results[1].formatted_address+"<br>"); // didn't work
                        alert(results[1].formatted_address); // Work Fine
                    } else {
                        alert('No results found');
                    }
                } else {
                    alert('Geocoder failed due to: ' + status);
                }
            });
        }
    </script>

这是我的来源

alert(String)工作正常

但是document.write不起作用

首先“document.write("Test Check1<br>"); // work fine

之间有什么不同

document.write(results[1].formatted_address+"<br>");

i can't understand `alert(results[1].formatted_address); // Work Fine` 

出现提醒地址为何

document.write(results[1].formatted_address+"<br>"); // didn't work

没有出现在网页上?

1 个答案:

答案 0 :(得分:1)

document.write() API只有在浏览器构建DOM时才能安全使用。在地图API的回调中使用它意味着在运行时,DOM已经完成。此时,对document.write()的调用隐含意味着应该删除DOM并准备一个新的。

如果您需要添加内容,请使用DOM操作API和/或innerHTML