2012-06-29 114 views
2

我在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> 
+0

同樣的問題我也可爲M獲得。 – Dena

回答

0

這是我在IE8出現錯誤:

網頁錯誤的詳細信息

消息: '空' 爲空或不是對象 線: 29 char:1104 代碼:0 URI:http://maps.gstatic.com/intl/en_us/mapfiles/api-3/9/7a/main.js

你有幾個問題:

  1. google.maps.event.addDomListener(窗口, '負荷',初始化()); 不正確,您需要將其更改爲 google.maps.event.addDomListener(window,'load',initialize); 你有它的方式(與圓括號)它執行之前,地圖div定義,導致上述錯誤)。

  2. 在ChangeMap1 layerl(圖層後跟一個小寫「L」)與layer1(圖層後跟第一個)不同。

  3. 在代碼中您發佈的地圖畫布DIV不具有的大小(即可能不適合是真實的你版)

link to working version

相關問題