SCRIPT5007:无法获得属性'offsetWidth'的值:
问题描述:
我在ie9中收到此错误,并且一直在拉我的头发。基本上“地图画布”div不会加载。SCRIPT5007:无法获得属性'offsetWidth'的值:
这是完全错误我得到:
SCRIPT5007:无法获得属性的“offsetWidth”值:对象为空或未定义 main.js,行29字符1104
任何帮助将不胜感激!
这里是我的代码:
<!DOCTYPE html>
<html class="no-maps-mini" xmlns:v="urn:schemas-microsoft-com:vml">
<!-- Starts the HTML header area -->
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no"/>
<meta content="text/html;charset=UTF-8" http-equiv="content-type"/>
<link rel="stylesheet" type="text/css" href="style/style.css" />
<title>Google Map Demo</title>
<script type="text/javascript"
src="http://maps.google.com/maps/api/js?sensor=false">
</script>
<script type="text/javascript">
var tableid1 = 4338356; //Fusion Table ID
var mylatlng = new google.maps.LatLng(49.66685, -124.91038); //map centre - Courtenay/Comox
function initialize() {
var myOptions = {
scaleControl: true,
overviewMapControl: true,
mapTypeControl: true,
mapTypeControlOptions: {
style: google.maps.MapTypeControlStyle.DEFAULT
},
zoom: 14,
center: mylatlng,
mapTypeId: google.maps.MapTypeId.TERRAIN
};
var map = new google.maps.Map(document.getElementById('map-canvas'), myOptions);
var layer1 = new google.maps.FusionTablesLayer({
query: {
select: "'geometry'",
from: tableid1
},
map: map
});
};
function changeMapl() {
var searchString = document.getElementById('search-string-l').value.replace(/'/g, "\\'");
layerl.setOptions({
query: {
select: "'geometry'",
from: tableid1,
where: "'Name' = '" + searchString + "'"
}
});
};
google.maps.event.addDomListener(window, 'load', initialize());
</script>
</head>
<body>
<div id="container">
<div id="header">
<h1>Comox Valley Walking Trails</h1>
<hr />
</div><!-- end #header -->
<div id="content-secondary">
<h3>sidebar1 Content</h3>
<h4>Trails</h4>
<select id="search-string-l" onChange="changeMapl(this.value);">
<option value="">--Select--</option>
<option value="MacDonald Wood Park">MacDonald Wood Park</option>
<option value="Goose Spit">Goose Spit</option>
<option value="Mack Laing Park">Mack Laing Park</option>
<option value="Filberg Rd to Goose Spit">Filberg Rd to Goose Spit</option>
</select>
<div class="clear"></div>
</div>
<div id="content-primary"><div id="map-canvas"></div></div>
<!-- This clearing element should immediately follow the #mainContent div in order to force the #container div to contain all child floats -->
<br class="clearfloat" />
<div id="footer">
<p>Footer</p>
<!-- end #footer --></div>
<!-- end #container --></div>
</body>
</html>
答
这是我在IE8出现错误:
网页错误的详细信息
消息: '空' 为空或不是对象 线: 29 char:1104 代码:0 URI:http://maps.gstatic.com/intl/en_us/mapfiles/api-3/9/7a/main.js
你有几个问题:
google.maps.event.addDomListener(窗口, '负荷',初始化()); 不正确,您需要将其更改为 google.maps.event.addDomListener(window,'load',initialize); 你有它的方式(与圆括号)它执行之前,地图div定义,导致上述错误)。
在ChangeMap1 layerl(图层后跟一个小写“L”)与layer1(图层后跟第一个)不同。
在代码中您发布的地图画布DIV不具有的大小(即可能不适合是真实的你版)
同样的问题我也可为M获得。 – Dena