文章摘要
这篇文章主要讲述了如何修改一段JavaScript代码,以防止将粘贴进来的代码进行转义处理。具体操作包括:1. 修改`ueditor.all.js`中的`FilterOptions`,将默认的`allowDivTransToP`设置为`false`,以禁止将`div`转为`p`。2. 注释掉几个关键函数,如`utils.each`、样式处理代码以及与文本转义相关的功能,以避免自动处理用户粘贴进来的内容。3. 删除或注释了一些特定的代码块,例如处理`span`元素的逻辑,以确保不删除只包含文字的元素。4. 通过这些修改,确保粘贴进来的`html`格式的`ul`和`li`不会被转义,保留用户粘贴的内容。 这些操作的目的是为了保护用户粘贴的代码不被 unintended地解析或转义,从而确保内容的安全性和用户体验的稳定性。
一、打开ueditor.all.js
二、大概9300行找到 ///plugin 编辑器默认的过滤转换机制,把下面的
‘allowDivTransToP’:true
值改成false。为true的时候会自动把div转成p。
三、大概9429行,有个case ‘li’,这个是把li里面的样式去掉,把这个case注释掉。
四、大概14058行,下面的第一个utils.each功能注释掉,这个是自动给li里面的内容增加一个p。
五、大概14220行,
node.className=utils.trim(node.className.replace(/list-paddingleft-\w+/,”)) + ‘ list-paddingleft-‘ + type;
注释掉,这个是自动给ul增加一个内置的样式。
下面的14222行
li.style.cssText && (li.style.cssText=”);
注释掉,这个是自动去除粘贴进去的代码的li的style样式
六、大概9327行和9471行附近的
else if (node.tagName==’span’ && (!node.attrs || utils.isEmptyObject(node.attrs))) {
node.parentNode.removeChild(node, true)
}
node.parentNode.removeChild(node, true)
}
去掉,这是代码中如果有类似文字这样的不包含样式的元素将会被删掉只保留文字。
至此,我们粘贴进去的html格式的ul和li就不会被转义了。
PS:以上版本修改基于1.3.6版本。新版本位置可能有变动或者已经解决此问题。
© 版权声明
文章版权归作者所有,未经允许请勿转载。


