这段js代码必须要用<body onload="">加载,能不能直接运行不要body onload加载,求助!

<scripttype="text/javascript">functionDotccMap(){map=newBMap.Map("Map");//创建地图实例varpo... <script type="text/javascript">
function DotccMap(){
map = new BMap.Map("Map"); // 创建地图实例
var point = new BMap.Point(116.324439,39.961233); // 创建点坐标
map.centerAndZoom(point, 16); // 初始化地图,设置中心点坐标和地图级别
map.addControl(new BMap.NavigationControl());
map.addControl(new BMap.ScaleControl());
map.addControl(new BMap.OverviewMapControl());

showMark();

map.addEventListener("click", function(e){
map.removeOverlay(marker);
var point = new BMap.Point(e.point.lng, e.point.lat);
map.centerAndZoom(point, 16);
marker = new BMap.Marker(point); // 创建标注
map.addOverlay(marker); // 将标注添加到地图中

var sContent ="<div style='text-align:center;font-size:12px;margin:0 0 5px 0;padding:0.2em 0'>123</div>"

infoWindow = new BMap.InfoWindow(sContent); // 创建信息窗口对象
marker.addEventListener("click", function(){
this.openInfoWindow(infoWindow); });
map.openInfoWindow(infoWindow, map.getCenter()); // 打开信息窗口
});

}
</script>
<body onload="DotccMap();" >
<div style="width:680px;height:360px;border:1px solid gray; id="Map"></div>
......
</body>
我试过放在底部运行,这样的:
});

}
DotccMap();
</script>
还有几种方法都不行,必须要用body onload才可以.....有没有办法不要<body onload="DotccMap();" >这样加载啊,我想要直接运行的效果,求助!
展开
 我来答
郑郑某
推荐于2016-02-21 · TA获得超过574个赞
知道小有建树答主
回答量:98
采纳率:0%
帮助的人:115万
展开全部
这段代码用了DOM节点,也即是id为Map的div。所以必须等到这个节点加载完才能运行这段代码,onload的作用也是如此。如果要避免这种写法,可以将javascript代码放到body之后。注意,是整段javascript代码放到body之后,而不是像你写的一样,将DotccMap()这调用写在DotccMap函数之后
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式