Layui富文本layedit图片设置超链接后,图片被链接字符串替换了,图片消失不见了,完整解决方案

网友投稿 318 2022-08-23

Layui富文本layedit图片设置超链接后,图片被链接字符串替换了,图片消失不见了,完整解决方案

第一步:你需要了解,JavaScript 函数 Call

你需要了解,JavaScript 函数 Call()不然,下面的源码你看不懂

先看一段官方解释:

方法重用

使用 ​​call()​​ 方法,您可以编写能够在不同对象上使用的方法。

函数是对象方法

在 JavaScript 中,函数是对象的方法。

如果一个函数不是 JavaScript 对象的方法,那么它就是全局对象的函数(参见前一章)。

下面的例子创建了带有三个属性的对象(​​firstName​​​、​​lastName​​​、​​fullName​​)。

var person = { firstName:"Bill", lastName: "Gates", fullName: function () { return this.firstName + " " + this.lastName; }}person.fullName(); // 将返回 "Bill Gates"

fullName 属性是一个方法。person 对象是该方法的拥有者。

fullName 属性属于 person 对象的方法。

JavaScript call() 方法

​​call()​​ 方法是预定义的 JavaScript 方法。

它可以用来调用所有者对象作为参数的方法。

通过 ​​call()​​,您能够使用属于另一个对象的方法。

本例调用 person 的 fullName 方法,并用于 person1:

var person = { fullName: function() { return this.firstName + " " + this.lastName; }}var person1 = { firstName:"Bill", lastName: "Gates",}var person2 = { firstName:"Steve", lastName: "Jobs",}person.fullName.call(person1); // 将返回 "Bill Gates"

[*重点]带参数的 call() 方法---layui源码用到是此方法

call() 方法可接受参数:

实例

var person = { fullName: function(city, country) { return this.firstName + " " + this.lastName + "," + city + "," + country; }}var person1 = { firstName:"Bill", lastName: "Gates"}person.fullName.call(person1, "Seattle", "USA");

此例调用 person 的 fullName 方法,在 person1 上使用它:Bill Gates,Seatle,USA

第二步:源码解读 与 修改

这里早期版本的话,你需要修改: layui\lay\modules\layedit.js我的版本是:2.6.8 改是的: \layui\layui.js方便你查看代码可以使用JS代码格式化工具​​jsDecoder JavaScript 格式化整理工具​​

2.2【*重点-只需要修改这里的代码】处理链接对象-在这个位置你需要修改下面代码块

* 请注意看代码里的注释

你需要增加下面代码块

/* 以下是需要增加的代码*/ if(i.text==undefined) { try{ if(l.context.children[0].nodeName==="IMG") { let _img=l.context.children[0]; i.text=''; e.text=i.text; } } catch(e){} } /* 以上是需要增加的代码*/

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:【Unity,C#】控制方向光模拟昼夜变化的脚本
下一篇:Google推荐在Compose中使用collectAsStateWithLifecycle替代collectAsState
相关文章

 发表评论

暂时没有评论,来抢沙发吧~