Javascript代码不会执行

时间:2011-11-24 11:47:58

标签: javascript html

我有一个非常基本的代码来加载Bing地图。通过将此代码放在HTML的head部分中,它会将地图加载到div #map。

这样可以正常工作:

<script type="text/javascript">
         window.onload = GetMap;               
         function GetMap()
         {
            map = new VEMap('map');
            map.LoadMap();            
         }
         </script>

由于上面的代码只是加载了GetMap函数。所以不应该在没有使用函数的情况下使用函数内的代码吗?例如:

<script type="text/javascript">
            map = new VEMap('map');
            map.LoadMap();
        </script>

但为什么这不起作用?

4 个答案:

答案 0 :(得分:1)

如果将它放在head部分中,它将在渲染整个页面之前执行,并创建“map”div。这在尝试更改div内容时会导致错误。

通过将其包装在函数中并在窗口加载时调用该函数,可以确保仅在页面完全呈现后才执行代码。

或者你可以把你的代码放在div之后,然后就可以了。

答案 1 :(得分:1)

我假设Bing地图绑定到DOM元素以显示地图(就像Google地图一样)。如果是这种情况,必须首先由浏览器加载DOM元素才能使绑定工作。在window.load上加载它可确保发生这种情况。如果您将代码移到页面底部,就在body代码上方,我相信您的代码应该有效。

答案 2 :(得分:1)

它不起作用,因为调用时地图元素不存在于DOM中

map = new VEMap('map');

窗口onload事件在文档加载过程结束时触发 - 因此文档中的所有对象都在DOM中。

答案 3 :(得分:1)

长话短说: 如果您不喜欢功能(他们对您做了什么?!),请将第二个脚本放在body元素的底部