富文本用内建函数.html,富文本ueditor内置地图的使用,含三处bug

地图配置好不能正常取点,顺着源码摸索了一遍运行机制,

- 渲染出弹出层,js渲染一个取点的modal

- 选取点并将拼接的html返回给编辑器

两种可能

```

var widget = editor.getWidgetData(widgetName),

center = widget.map.getCenter(),

zoom = widget.map.getZoom(),

size = widget.map.getSize(),

point = widget.marker.P;//将此处的P 改为point即可正常选点。

// 截图展示地图

if (widget.root().find(".edui-map-dynamic")[0].checked) {

var URL = editor.getOpt('UMEDITOR_HOME_URL'),

url = [URL + (/\/$/.test(URL) ? '':'/') + "dialogs/map/map.html" +

'#center=' + center.lng + ',' + center.lat,

'&zoom=' + zoom,

'&width=' + size.width,

'&height=' + size.height,

'&markers=' + point.lng + ',' + point.lat].join('');

editor.execCommand('inserthtml', '<iframe class="ueditor_baidumap" src="' + url + '" frameborder="0" width="' + (size.width+4) + '" height="' + (size.height+4) + '"></iframe>');

} else {// 动态展示地图,插入地图时右上勾选。

url = "http://api.map.baidu.com/staticimage?center=" + center.lng + ',' + center.lat +

"&zoom=" + zoom + "&width=" + size.width + '&height=' + size.height + "&markers=" + point.lng + ',' + point.lat;

editor.execCommand('inserthtml', '<img width="' + size.width + '"height="' + size.height + '" src="' + url + '"' + (widget.imgcss ? ' style="' + widget.imgcss + '"' : '') + '/>', true);

}

```

上面第六行处的P 改为point即可正常选点。

另一处

```

var search = new BMap.LocalSearch(city, {

onSearchComplete: function (results) {

if (results && results.getNumPois()) {

var points = [];

for (var i = 0; i < results.getCurrentNumPois(); i++) {

points.push(results.getPoi(i).point);

}

if (points.length > 1) {

me.map.setViewport(points);

} else {

me.map.centerAndZoom(points[0], 13);

}

point = me.map.getCenter();

me.marker.setPoint(point);//此处改为setPosition

} else {

alert(me.lang.errorMsg);

}

}

});

```

上面第14行处的 setPoint 改为setPosition即可正常选点。

另一处

```

//创建和初始化地图函数:

function initMap() {

// [FF]切换模式后报错

if (!window.BMap) {

return;

}

var dituContent = document.getElementById('dituContent');

dituContent.style.width = widthParam + 'px';

dituContent.style.height = heightParam + 'px';

createMap();//创建地图

setMapEvent();//设置地图事件

addMapControl();//向地图添加控件

// 创建标注

var markersArr = markersParam.split(',');

var point = new BMap.Point(markersArr[0], markersArr[1]);

marker = new BMap.Marker(point);

marker.enableDragging();

map.addOverlay(marker); // 将标注添加到地图中

if(iframe && UM && editor) { //在编辑状态下

setMapListener();//地图改变修改外层的iframe标签src属性

} else {

document.focus(); // 此处改为 window.focus();

}

}

```

上面第25行处的 document.focus(); 改为 window.focus();。

因为是表单页面使用了layui,默认会把checkbox等隐藏,所以需要在map.js中修改checkbox的样式。

动态地图的key需要去map.html和map.js中修改,存在多处,用搜索看一下就好

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值