<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
没有出现在网页上?
答案 0 :(得分:1)
document.write()
API只有在浏览器构建DOM时才能安全使用。在地图API的回调中使用它意味着在运行时,DOM已经完成。此时,对document.write()
的调用隐含意味着应该删除DOM并准备一个新的。
如果您需要添加内容,请使用DOM操作API和/或innerHTML
。