js代码片段,功能是调用高德地图JS API,并做些布局调整
var map = new AMap.Map("container", {
resizeEnable: true,
zoomEnable: true,
center: [116.397428, 39.90923],
zoom: 11
});
js写在html页面正常的全部代码
毕业生租房
公交+地铁
地铁
***这是js代码片段***

js分离成文件被HTML引用的出现问题的全部代码
毕业生租房
***引用js文件代码***
公交+地铁
地铁
高德API没有调用成功
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
最近好多这种问题啊
之所以空白,是因为浏览器读完了你的js代码,但<script>标签下面的body都没读到。里面的dom结构也没有构建起来,不管是jq还是高德地图的参数还是简简单单的
document.getElementById('container')都不会找到任何结果你可以试试:
最开始你把js放在底部,浏览器读已经读了js代码上面的那些标签,也构建起了dom树,能够让js去寻找。所以高德地图的调用没问题。
解决办法:
如上面几位所说的:把所有js统统放底部,这样不仅不怕dom树尚未构建导致的查找元素失败,也可以先让浏览器将css和html结合后的样式先渲染出来,避免某个js文件过大,加载时间长,导致页面长时间空白引起的不好的用户体验。
其次就是给你主要执行的代码放在
window.onload或者$(function(){})里面,这样是等待页面全部元素或者dom结构出来之后再执行你的代码。因为浏览器已经将html渲染进页面了,所以在执行js代码的时候,不怕找不到元素。调用js脚本放在底部
要等地图api回调成功在试试
因为按顺序是从上到下加载元素,调用高德api时的那个
其中的 container 是个元素id吧?界面在未加载完之前就使用id,当然不可能取到。
所以现在一般都把js放在body最后几行,你F12打开这个网站看看源码部分
楼主把页面中的js代码变成文件之后,也要放在页面底部和之前相同的位置的