预期:在Google地图标注框中查看1-5颗星 实际:页面闪烁,并在页面顶部仅显示一长串星标。
我怀疑我不应该使用document.write?
<html>
<head>
<script type="text/javascript">
//some Google Maps API code
function showstar(x)
{
var i = 0;
while (i < x)
{
document.write("<img src=\"img/star.gif\" width=\"15\" height=\"15\" />");
i++;
}
}
var html = "Review stars: " showstar(star)
GEvent.addListener(marker, 'click', function() {
marker.openInfoWindowHtml(html);
});
return marker;
}
</script>
</head>
<body onload="load()" onunload="GUnload()">
<div id="map" style="width: 700px; height: 500px"></div>
</body>
</html>
答案 0 :(得分:1)
正确,在页面加载完成之前执行时,你不应该像这样使用document.write - document.write Replaces All Body Content。
而不是document.write,返回函数末尾的HTML字符串:
function showstar(x) {
var i = 0, starsHTML = "";
while (i < x) {
starsHTML += "<img src=\"img/star.gif\" width=\"15\" height=\"15\" />";
i++;
}
return starsHTML;
}
PS我假设star
已定义并在使用之前在某处分配了一个值,您在此处的代码中未提供该值。