你正在呼唤init()
before该函数已被定义。
将调用放在函数定义之后。
<script type="text/javascript">
var map = null;
function init() {
var latlng = new google.maps.LatLng(51.5001524, -0.12623619);
var myOptions = {
zoom: 7,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
}
</script>
<script>init();</script>
或者直接去掉函数调用直接执行。它会像执行后一样工作<div id="map_canvas">
已被定义。
<script type="text/javascript">
var map = null;
var latlng = new google.maps.LatLng(51.5001524, -0.12623619);
var myOptions = {
zoom: 7,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
</script>
无关针对具体问题:复合组件中存在另一个设计缺陷。该组件不能在同一视图中重复使用多次。你最终会得到多个<div id="map_canvas">
HTML 中的元素。具有多个相同的元素id
HTML 中是非法的。相应地修复它:
<div id="#{cc.clientId}_map_canvas" ...>
and
... document.getElementById("#{cc.clientId}_map_canvas") ...