一般情况下是引用的问题,产生的原因大概有两种
1.不同架构的引用方式不同,引用js的方式不同导致
2.自身调用顺序有误
官方的引用方式是使用标签引入,示例
还有官方提供的https的引用方式,示例
在引用中,是可以使用callback的,示例 注意,此方式确实能保证加载完成再调用其他函数,不会造成顺序问题
function loadJScript() { var script = document.createElement("script"); script.type = "text/javascript"; script.src = "http://api.map.baidu.com/api?v=2.0&ak=TuIXlHOOl8dyN4T60vCxqpeg3mfO2uOj&callback=init"; document.body.appendChild(script); } loadJScript();
说一个遇到的奇葩案例:
本人开发过程中服务在本机上,于是用手机访问无线网,然后访问本机上的项目,发现:
1.本机上的pc版本,或者是浏览器模拟手机版h5,都可以打开百度地图
2.使用手机连接wifi打不开百度地图
3.将项目部署在外网服务器上,使用外网访问,能够打开百度地图
最后找了好久,我这的wifi上不去网的原因是手机没有设置dns服务器。。。
除了以上引用方式之外,我们可以将自己的百度地图的使用的链接放到浏览器中,会发现获得到这样的结果:
于是乎,该地址只是在百度上请求一个地址,来加载一个script标签,写入百度map的jsapi了。于是将其api输入到浏览器url中,得到下面的结果
此文为js的实际代码,于是我们既可以将此代码down到本机,又可以写在script标签中,示例
这种方式一定程度上能够避免加载问题,有些浏览器不允许使用load的问题、
以上!