ueditor php 网络链接错误,ueditor使用editor.execCommand( 'link', {})插入链接无效的问题...

介绍

因为项目需要,所以要在百度富文本编辑器ueditor上二次开发,有一个就是在富文本中插入链接的功能;

官方文档如下:

execCommand(String cmd, Object options)

执行当前命令

参数列表

参数名

类型

描述

cmd

String

命令字符串

options

Object

设置自定义属性,例如:url、title、target

示例

editor.execCommand( 'link', '{

url:'ueditor.baidu.com',

title:'ueditor',

target:'_blank'

}' );

这里首先要纠正下,这里官方的代码演示是错误的,第二个参数应该是一个对象,而不是字符串,所以,正确用法应该是

editor.execCommand( 'link', {

url:'ueditor.baidu.com',

title:'ueditor',

target:'_blank'

});

复现问题

当插入链接(调用此方法)后,文本框没有反应;

然后我们尝试着去检查富文本编辑框html代码,会发现:

6e149f7e82d3

链接加上了,但没有文字,原来title字段是a 标签的title属性。。。然而官方文档也没有详细说明;

解决办法

通过断点查找,找到了 ueditor \ utf8-php \ dialogs \ link的link.html文件,如下有这么一段代码:

function handleDialogOk(){

var href =$G('href').value.replace(/^\s+|\s+$/g, '');

if(href){

if(!hrefStartWith(href,["http","/","ftp://",'#'])) {

href = "http://" + href;

}

var obj = {

'href' : href,

'target' : $G("target").checked ? "_blank" : '_self',

'title' : $G("title").value.replace(/^\s+|\s+$/g, ''),

'_href':href

};

//修改链接内容的情况太特殊了,所以先做到这里了

//todo:情况多的时候,做到command里

if(orgText && text.value != orgText){

link[browser.ie ? 'innerText' : 'textContent'] = obj.textValue = text.value;

range.selectNode(link).select()

}

if(range.collapsed){

obj.textValue = text.value;

}

editor.execCommand('link',utils.clearEmptyAttrs(obj) );

dialog.close();

}

}

结果测试,是obj.textValue起到了关键作用,所以,可以改为

editor.execCommand( 'link', {

url:'ueditor.baidu.com',

title:'ueditor',

target:'_blank',

textValue:'ueditor'

});

SUCCESS

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Layer.open方法通常用于在Web前端使用laya引擎的UI模块创建一个可关闭的弹出窗口,而UEditor(统一编辑器)是一个富文本编辑器插件,常用于网页内容的编辑。如果你想要在laya中集成UEditor,你需要做以下几步: 1. 引入UEditor库:首先在你的项目中引入UEditor的JS文件,可以从Ueditor官网下载压缩包并提取所需的js和css文件。 ```html <script src="ueditor/ueditor.config.js"></script> <script src="ueditor/ueditor.all.min.js"></script> <link rel="stylesheet" type="text/css" href="ueditor/themes/default/ueditor.css"> ``` 2. 初始化UEditor:在laya中,你可以使用`layer.open`打开一个新的窗口,并在其中初始化UEditor实例。 ```javascript layer.open({ type: 1, // 1表示层弹出,如果是2则为iframe弹出 title: '富文本编辑器', shade: false, // 是否开启遮罩层,默认true area: ['80%', '60%'], // 编辑器大小 content: '<div id="myEditor" style="width:100%;height:100%;"></div>', // 使用 Laya UI 的 div 包裹 UEditor btn: ['确定', '取消'], // 确保关闭按钮 yes: function(index, layero, data) { // 确定按钮点击事件 var ue = UE.getEditor('myEditor'); // 获取UEditor实例 // 编辑器操作后处理,例如获取内容、保存等 }, cancel: function(index, layero, data) {} // 取消按钮点击事件 }); ``` 3. 初始化编辑器:在内容区域的`<div>`元素中创建UEditor实例,并设置必要的配置参数,如宽度、高度、初始化配置等。 ```javascript var ue = UE.getEditor('myEditor', { initialContent: '', // 设置初始内容 toolbars: 'full', // 显示全部工具栏 autoHeightEnabled: false // 防止高度自适应导致滚动条问题 }); ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值