文章内容

BJUI框架重复内容页面加载 ueditor百度编辑器解决方法

  • 2018-06-24 16:14:21
  • 876
  • 0
  • 0

BJUI框架重复页面加载 ueditor百度编辑器 代码

思路:

  1. 定义全局变量 ,放在重复页面外围!

  2. var uelist = [];
  3. 定义随机数

  4. //x上限,y下限  获取随机数   
    var x = 1000;
    var y = 0;
    var rand = parseInt(Math.random() * (x - y + 1) + y);
    var uid = "essay-container" + rand;
  5. 定义新编辑器ID:编辑器ID+随机数

  6. var uid = "essay-container" + rand;
  7. 将重复页面中的编辑器ID修改为:新编辑器ID(编辑器ID+随机数)

  8. $.CurrentNavtab.find("#essay-container").attr("id", "essay-container" + rand);
  9. 初始化新ID的编辑器并赋值到参数 ue

  10. //删除本页面重复ID的编辑器
    UE.delEditor(uid);
    //初始化
    var ue = UE.getEditor(uid, {
        UEDITOR_HOME_URL: "/public/Plug-in/ueditor/utf8-net/",//初始化编辑器地址
        autoHeightEnabled: true,
        autoFloatEnabled: true,
        zIndex: 1, //重叠顺序,值越高重叠越高
        initialFrameHeight: 300,//初始化编辑器高度
        maximumWords: 100000,//编辑器文本最大长度
                //labelMap: { 'word': '导入Word文档内容'}
    });
  11. 获取当前ue在uelist中的定位,将ue添加到 uelist数组中

  12. //获取ue中的数组长度
    var uelistLength = uelist.length;
    //将ue添加进uelist
    uelist.push(ue);
  13. 将定位值添加到编辑器属性中

  14. $.CurrentNavtab.find("#" + uid).attr("ueLength", uelistLength);
  15. 获取当前页面ue在数组中的定位,绑定uelist[定位] 加载完成事件

  16. //获取当前页面ue在数组中的定位
    var thisLength = $.CurrentNavtab.find("#" + uid).attr("ueLength");
    // 当前页 ue 加载完成事件
    uelist[thisLength].ready(function () {
       //编辑器初始化完成再赋值  
       var content = $.CurrentNavtab.find("#essay-content").val();
       if (content.length > 0) {
           //将内容填充到当前页编辑器中
           uelist[thisLength].setContent(content);  //赋值给UEditor  
       }
    });

完整代码

<script type="text/javascript">
    <!-- 实例化编辑器 -->
    //x上限,y下限  获取随机数   
    var x = 1000;
    var y = 0;
    var rand = parseInt(Math.random() * (x - y + 1) + y);
    var uid = "essay-container" + rand;
    $(function () {
        //将本页面默认的编辑器ID修改为 编辑器ID+随机数
        $.CurrentNavtab.find("#essay-container").attr("id", "essay-container" + rand);
        
        //删除本页面重复ID的编辑器
        UE.delEditor(uid);
        //初始化
        var ue = UE.getEditor(uid, {
            UEDITOR_HOME_URL: "/public/Plug-in/ueditor/utf8-net/",//初始化编辑器地址
            autoHeightEnabled: true,
            autoFloatEnabled: true,
            zIndex: 1, //重叠顺序,值越高重叠越高
            initialFrameHeight: 300,//初始化编辑器高度
            maximumWords: 100000,//编辑器文本最大长度
            //labelMap: { 'word': '导入Word文档内容'}
        });
        //获取ue中的数组长度
        var uelistLength = uelist.length;
        //将ue添加进uelist
        uelist.push(ue);
        //当前页ue所在定位设置在编辑器属性中
        $.CurrentNavtab.find("#" + uid).attr("ueLength", uelistLength);
        //获取当前页面ue在数组中的定位
        var thisLength = $.CurrentNavtab.find("#" + uid).attr("ueLength");
        // 当前页 ue 加载完成事件
        uelist[thisLength].ready(function () {
            //编辑器初始化完成再赋值  
            var content = $.CurrentNavtab.find("#essay-content").val();
            if (content.length > 0) {
                //将内容填充到当前页编辑器中
                uelist[thisLength].setContent(content);  //赋值给UEditor  
            }
        });
        //当前页编辑器失去焦点事件监听,并将编辑器内容编译后放入待提交的input中。
        UE.getEditor(uid).addListener('blur', function (editor) {
            var content = UE.getEditor(uid).getContent()
            if (content.length > 0) {
                //进行编码
                content = window.encodeURIComponent(content);
                $.CurrentNavtab.find("#essay-content").val(content);
            }
        });
        //当前页编辑器内容改变事件监听,并将编辑器内容编译后放入待提交的input中。
        UE.getEditor(uid).addListener('contentChange', function (editor) {
            var content = UE.getEditor(uid).getContent()
            if (content.length > 0) {
                //进行编码
                content = window.encodeURIComponent(content);
                $.CurrentNavtab.find("#essay-content").val(content);
            }
        });
    })
</script>