Jas*_*son 2 html javascript jquery google-maps-api-3
我正在使用DotNetNuke CMS的网站上工作.我已经使用API添加了Google Maps地图,但是我需要在页面加载时调用initialize()函数.通常你会这样做:
<body onload="initialize()">
Run Code Online (Sandbox Code Playgroud)
或者在</ body>标记之前添加以下内容:
<script type="text/javascript">
window.onload = function () {
initialize();
}
</script>
Run Code Online (Sandbox Code Playgroud)
但是我无法访问body标签或标签的确切结尾.有没有其他方法调用此功能而不执行上述操作?
在窗口加载事件上执行此操作不是一个好主意 - 如果您有一些高延迟图像或其他资源加载,那么您的谷歌地图将加载速度非常慢.在关闭正文标记之前,添加以下内容:
<script>
initialize();
</script>
Run Code Online (Sandbox Code Playgroud)
谷歌在构建它的地图之前需要准备就绪的是DOM,而不是页面上的每一个资产.在脚本在关闭正文标记之前加载时,DOM总是完全加载.
编辑
从技术上讲,所有谷歌地图需要在它构建之前做好准备它的地图是它将被放置的div.所以你甚至不需要在关闭身体标签之前有脚本,你可以在之后立即使用它你的地图div标签是这样的:
<html>
...
<body>
...html...
<div id="map-canvas"></div>
<script>initialize();</script>
...more html
</body>
Run Code Online (Sandbox Code Playgroud)
当我偶然尝试一些东西时,我已经想通了.将以下内容添加到标题中很重要.API V3万岁!
<script type="text/javascript">
google.maps.event.addDomListener(window, 'load', initialize);
</script>
Run Code Online (Sandbox Code Playgroud)