2009-07-04 22 views
8

當地圖加載時,出現此錯誤alt text http://img239.imageshack.us/img239/6936/jserror.png開放圖層中的Javascript「未指定錯誤」

的錯誤是在原始,未OpenLayers.js在這條線的文件:

return!!(document.namespaces);

我已經嘗試過了重寫:

return (typeof(document.namespaces) != 'undefined');

和它的工作,但隨後在進一步引用document.namespace時,我會得到相同的「未指定」錯誤:

if(!document.namespaces.olv){document.namespaces.add("olv",this.xmlns); ...

我試圖重寫這:

if(typeof(document.namespaces.olv) == 'undefined') { ...

,但我得到相同的 「未指定的錯誤」。

我只在Internet Explorer(我在7上測試過)而不是在Firefox上得到這個錯誤。

任何線索?

謝謝。

回答

6

我找到了解決方案。

的問題是,我是在創建地圖時的DOM準備使用jQuery:

$(document).ready(function(){ ... //create map here [WRONG] 

所有你所要做的就是創建onload事件後的地圖:

window.onload = function() { ... // create map here [CORRECT] 
+2

改寫與你的所有.onload事件是很難做到 – Art 2010-04-08 04:33:03

+0

我們有問題火狐windows.onload一件好事,所以選擇,而不是爲$(窗口) .bind(「load」,function(){ – eclipse31 2011-03-11 13:47:57

0

Internet Explorer的問題在於,當頁面打開文檔或者窗口打開時,M $瀏覽器無法確定地圖畫布的尺寸。如果要解決這個問題,您也可以考慮設置你的地圖格尺寸:

<div id="map" style="width:250px;height:250px"></div> 
7

真正的問題是,document.namespaces觸發$(文件)。就緒(因爲有時當不IE8準備VML)

,您可以改用:

jQuery(window).load(function() {} ...);