zoukankan      html  css  js  c++  java
  • UEditor使用有感(红色),保存内容时,会自动添加p标签

    UEditor 介绍

    UEditor 是由百度「FEX前端研发团队」开发的所见即所得富文本web编辑器,具有轻量,可定制,注重用户体验等特点,开源基于MIT协议,允许自由使用和修改代码。

    1 入门部署和体验

    1.1 下载编辑器

    到官网下载 UEditor 最新版:[官网地址]

    1.2 创建demo文件

    解压下载的包,在解压后的目录创建 demo.html 文件,填入下面的html代码

    <!DOCTYPE HTML>
    <html lang="en-US">
    
    <head>
        <meta charset="UTF-8">
        <title>ueditor demo</title>
    </head>
    
    <body>
        <!-- 加载编辑器的容器 -->
        <script id="container" name="content" type="text/plain">
            这里写你的初始化内容
        </script>
        <!-- 配置文件 -->
        <script type="text/javascript" src="ueditor.config.js"></script>
        <!-- 编辑器源码文件 -->
        <script type="text/javascript" src="ueditor.all.js"></script>
        <!-- 实例化编辑器 -->
        <script type="text/javascript">
            var ue = UE.getEditor('container');
        </script>
    </body>
    
    </html>

    1.3 在浏览器打开demo.html

    如果看到了下面这样的编辑器,恭喜你,初次部署成功!

    部署成功

    1.4 传入自定义的参数

    编辑器有很多可自定义的参数项,在实例化的时候可以传入给编辑器:

    var ue = UE.getEditor('container', {
        autoHeight: false
    });

    配置项也可以通过 ueditor.config.js 文件修改,具体的配置方法请看前端配置项说明

    1.5 设置和读取编辑器的内容

    通 getContent 和 setContent 方法可以设置和读取编辑器的内容

    var ue = UE.getContent();
    //对编辑器的操作最好在编辑器ready之后再做
    ue.ready(function() {
        //设置编辑器的内容
        ue.setContent('hello');
        //获取html内容,返回: <p>hello</p>
        var html = ue.getContent();
        //获取纯文本内容,返回: hello
        var txt = ue.getContentTxt();
    });

    UEditor 的更多API请看API 文档

    2 详细文档

    UEditor 官网:http://ueditor.baidu.com

    UEditor API 文档:http://ueditor.baidu.com/doc

    UEditor Github 地址:http://github.com/fex-team/ueditor

    3 联系我们

    Email:ueditor@baidu.com

    Issue:github issue

    1、设置监听事件使textarea节点自动加载显示内容;

    $(function(){
    var ue = UE.getEditor('editor');
    //对编辑器的操作最好在编辑器ready之后再做
    ue.ready(function() {
    //获取html内容,返回: <p>hello</p>
    var html = ue.getContent();
    ue.getContent(function(){
    $("#ueditor_textarea_editorValue").html(html);
    });
    });
    ue.addListener('contentChange',function(){
    $("#ueditor_textarea_editorValue").html(this.getContent());
    })
    });

    经设置还是不能掉P标签

    临时解决方法,但会把全部html标签去掉,不可取。

     其实是因为使用了模板引擎的标签{{}}导致的,它会把html标签过虑成实体字符,所以ueditor自动加P标签;

    只要把{{}}换成{!!   !!},问题就解决了,它不会过虑html标签。

     

    2、网上的做

    百度的Ueditor编辑器出于安全xìng考虑,用户在html模式下粘贴进去的html文档会自动被去除样式和转义。虽然安全的,但是非常不方便。 
    做一下修改把这个功能去掉。
    一、打开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样式

    至此,我们粘贴进去的html格式的ul和li就不会被转义了。
  • 相关阅读:
    关于网购心态
    c++ In STL maps, is it better to use map::insert than []? Stack Overflow
    小工具:sshcopyid_老王的技术手册 ( 我的新博客:http://huoding.com )_百度空间
    djangoqbe
    C++ STL map的使用
    容器find_if函数定义和其第三个参数重载的疑问
    ArchLinux的安装与配置
    使用Grub进行Linux的硬盘安装与修复
    MySQL数据类型简介
    ArchLinux下Alsa的简单配置
  • 原文地址:https://www.cnblogs.com/caicaizi/p/6094540.html
Copyright © 2011-2022 走看看