引入百度地图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时产生的问题的主要内容,如果未能解决你的问题,请参考以下文章

vue引入百度地图BMapGL,或者其他个性化地图

百度地图threejs相关

外部引入的js 判断js脚本加载是否完成,完成后执行 相应的动作(以引入百度地图js为例)

vue 项目模块化引入百度地图

vue 使用百度地图(vue-Baidu-Map)

VUE 中引入百度地图