打开图层中的Javascript"未指定的错误"

Ali*_*lin 8 javascript map openlayers

我在地图加载时收到此错误alt文本http://img239.imageshack.us/img239/6936/jserror.png.

错误发生在此行的原始未修改的OpenLayers.js文件中:

return!!(document.namespaces);

我试过把它重写为:

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

并且它工作但我在进一步引用document.namespaces时得到相同的"未指定"错误:

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

我尝试将其重写为:

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

但我得到了相同的"未指明的错误".

我只在Internet Explorer上遇到此错误(我在7上测试过)而不是在Firefox中.

有线索吗?

谢谢.

小智 7

真正的问题是,有时在触发$(document).ready(因为VML)时,document.namespaces在IE8中还没有准备好

你可以改用:

jQuery(window).load(function() {} ...);
Run Code Online (Sandbox Code Playgroud)


Ali*_*lin 6

我找到了解决方案.

问题是我在使用Jquery准备DOM时创建了地图:

$(document).ready(function(){  ... //create map here [WRONG]
Run Code Online (Sandbox Code Playgroud)

您所要做的就是在onload事件之后创建地图:

window.onload = function() { ... // create map here [CORRECT]
Run Code Online (Sandbox Code Playgroud)

  • 用你的方法覆盖所有.onload事件并不是一件好事 (2认同)