ueditor去除自动转换
ueditor在使用中发现很多问题。比如自动添加P标签,自动去除span,自动给li添加ul开始结束,自动把div转成P标签等等。
其实很多在百度上可以找到。这里总结下,以后也慢慢补充。
先说一个百度不那么好找到的。就是li自动给添加ul。
ueditor.all.js文件打开
搜索:'li':['ul', 'ol'],把这个给注释掉。就不会再自动给li补齐ul了。还有一些其他的自动补齐根据自己需要注释吧。
搜索: 'allowDivTransToP':true,这个是div标签转换P标签的。改成'allowDivTransToP':false,就可以去掉转换了。
搜索:case 'li':把这个代码注释掉,这个是去掉li的样式的。
搜索: utils.each(root.getNodesByTagName('li'),function(li)第二个结果。在上面应该还有官方注释注释内容为://进入编辑器的li要套p标签。把这个注释掉吧。这个是li里面自动添加p标签的。
搜索:node.className = utils.trim(node.className.replace(/list-paddingleft-w+/,''))把这行注释掉这个是ul自动增加内置样式的。
搜索: li.style.cssText && (li.style.cssText = '');把这个注释掉,这个是去除粘贴的代码中li带的样式的。
搜索:me.options.autoClearEmptyNode && dtd.$inline[node.tagName] && !dtd.$empty[node.tagName] && (!node.attrs || utils.isEmptyObject(node.attrs))第二处是我们要编辑的位置。注释掉这个if判断和里面的内容。然后在这个当前方法的下面会有case 'span':的处理。也注释掉这个case 'span':,在搜索else if (node.tagName == 'span' && (!node.attrs || utils.isEmptyObject(node.attrs))),注释掉这个else if到if结尾的}应该是一共就三行代码,我们的span就不会再被清除了
刚才测试时候发现,在html代码到编辑不会出现添加ul了,但是保存后再打开还是会有ul。说明不够彻底。稍等解决。
其实很多在百度上可以找到。这里总结下,以后也慢慢补充。
先说一个百度不那么好找到的。就是li自动给添加ul。
ueditor.all.js文件打开
搜索:'li':['ul', 'ol'],把这个给注释掉。就不会再自动给li补齐ul了。还有一些其他的自动补齐根据自己需要注释吧。
搜索: 'allowDivTransToP':true,这个是div标签转换P标签的。改成'allowDivTransToP':false,就可以去掉转换了。
搜索:case 'li':把这个代码注释掉,这个是去掉li的样式的。
搜索: utils.each(root.getNodesByTagName('li'),function(li)第二个结果。在上面应该还有官方注释注释内容为://进入编辑器的li要套p标签。把这个注释掉吧。这个是li里面自动添加p标签的。
搜索:node.className = utils.trim(node.className.replace(/list-paddingleft-w+/,''))把这行注释掉这个是ul自动增加内置样式的。
搜索: li.style.cssText && (li.style.cssText = '');把这个注释掉,这个是去除粘贴的代码中li带的样式的。
搜索:me.options.autoClearEmptyNode && dtd.$inline[node.tagName] && !dtd.$empty[node.tagName] && (!node.attrs || utils.isEmptyObject(node.attrs))第二处是我们要编辑的位置。注释掉这个if判断和里面的内容。然后在这个当前方法的下面会有case 'span':的处理。也注释掉这个case 'span':,在搜索else if (node.tagName == 'span' && (!node.attrs || utils.isEmptyObject(node.attrs))),注释掉这个else if到if结尾的}应该是一共就三行代码,我们的span就不会再被清除了
刚才测试时候发现,在html代码到编辑不会出现添加ul了,但是保存后再打开还是会有ul。说明不够彻底。稍等解决。
OK,果然是这里。ul在提交后再次出现问题。在我们搜索 'li':['ul', 'ol'],的时候会发现下面还有一个needChild = {
'ol':'li',
//'ul':'li'
};
我已经注释掉了 'ul':'li'就是这个在影响。注释掉就可以了。到此我需求的改好了。在遇到问题在改。
搜索:return '"'更改为 retuen '';返回空。自动添加双引号的bug。
继续完善,
去除自动添加p标签。搜索:enterTag会找到 enterTag: 'p', 把p去掉。改成enterTag: '',
我已经注释掉了 'ul':'li'就是这个在影响。注释掉就可以了。到此我需求的改好了。在遇到问题在改。
搜索:return '"'更改为 retuen '';返回空。自动添加双引号的bug。
继续完善,
去除自动添加p标签。搜索:enterTag会找到 enterTag: 'p', 把p去掉。改成enterTag: '',
ueditor结合artDialog
使用artDialog弹窗弹出编辑器后,附带上传图片功能。使用的弹窗带遮罩层。
点击上传图片后会发现上传图片的窗体被遮挡。
后来找到修改位置在
后来找到修改位置在
另外就是编辑器的路径配置问题。因为编辑器使用的是获取当前url。所以目录层级会是一个问题。解决方案替换ueditor.config.js中的url变量使用window.location.host来获取当前使用域名。自己在前后加http和/编辑目录即可。相当于使用绝对定位。