无法获取属性'offsetWidth'的值:object为null或undefined错误

时间:2012-03-17 05:31:46

标签: javascript google-maps google-maps-api-3

我正在开发一个基本上被设置为具有三行的表的页面。顶行是标题,中间行是页面的主要部分,底行是导航。导航行中的每个按钮都会触发一个javascript函数,该函数使用中间行的innerHTML值并放置必要的html来显示页面的内容。 在我的主页上:

<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?key=MY_KEY&sensor=false"></script>

在头部我有:

var myOptions = {center: new google.maps.LatLng(-34.397, 150.644), zoom: 8, mapTypeId: google.maps.MapTypeId.ROADMAP };

在body部分中,它立即运行,然后在MAP按钮调用的函数中,我有:

var mapString;
var w = document.getElementById("mainwindow");
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
mapString = '<table width="1024" cellpadding="0" cellspacing="0"><tr>';
mapString += '<td> <div id="map_canvas" width="1024" height="350"></div></td>';
mapString += '</tr></table>';
w.innerHTML = mapString;

现在,当我按下Map按钮时,我收到错误:

Unable to get value of the property 'offsetWidth': object is null or undefined
main.js Line 29
Code 0 char:1385
URI: http://maps.gstatic.com/intl/en_us/mapfiles/api-2/3/2/main.js

不确定这个错误试图告诉我什么。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:8)

   var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

最后因为当谷歌地图尝试将地图加载到该div时,map_canvas div不存在。

应该像这样阅读

var mapString;
var w = document.getElementById("mainwindow");
mapString = '<table width="1024" cellpadding="0" cellspacing="0"><tr>';
mapString += '<td> <div id="map_canvas" width="1024" height="350"></div></td>';
mapString += '</tr></table>';
w.innerHTML = mapString;

var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
相关问题