引入百度地图js时产生的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了引入百度地图js时产生的问题相关的知识,希望对你有一定的参考价值。
参考技术A 页面引入百度地图API:产生如下问题:
即为报错:A Parser-blocking, cross-origin script, is invoked via document.write.
在页面渲染完成后就不能使用 document.write 方法。
根据 博客 的说明尝试如下方法:
出现问题:
后来发现页面引入的百度的js内容为:
里面包含了 document.write方法,异步加载的js是不允许使用document.write方法的
直接引用这两个地址的js http://api.map.baidu.com/getscript?type=quick&file=api&ak=o9B4Ol99j9NcBXSu5nFTR7uI&t=20140109092002 和 http://api.map.baidu.com/getscript?type=quick&file=feature&ak=o9B4Ol99j9NcBXSu5nFTR7uI&t=20140109092002 就可以了
VUE 中引入百度地图
1.安装:
npm install vue-baidu-map --save
2.全局注册,在main.js中引入以下代码:
import BaiduMap
from
'vue-baidu-map'
Vue.use(BaiduMap, {
ak:
'你申请的key'
})
3.完整代码:
<template>
<baidu-map :center="center" :zoom="zoom" @ready="handler" style="height:1080px" @click="getClickInfo" :scroll-wheel-zoom='true'>
</baidu-map>
</template>
<script>
export default {
name: 'TestBaiDu',
data () {
return {
center: {lng: 109.45744048529967, lat: 36.49771311230842},
zoom: 13
}
},
methods: {
handler ({BMap, map}) {
var point = new BMap.Point(109.49926175379778, 36.60449676862417)
map.centerAndZoom(point, 13)
var marker = new BMap.Marker(point) // 创建标注
map.addOverlay(marker) // 将标注添加到地图中
var circle = new BMap.Circle(point, 6, { strokeColor: 'Red', strokeWeight: 6, strokeOpacity: 1, Color: 'Red', fillColor: '#f03' })
map.addOverlay(circle)
},
getClickInfo (e) {
console.log(e.point.lng)
console.log(e.point.lat)
this.center.lng = e.point.lng
this.center.lat = e.point.lat
}
}<br>}
以上是关于引入百度地图js时产生的问题的主要内容,如果未能解决你的问题,请参考以下文章