美文网首页JFinal精选
PJAX模式下使用UEditor如何避免二次加载页面初始化失败?

PJAX模式下使用UEditor如何避免二次加载页面初始化失败?

作者: 山东小木 | 来源:发表于2019-10-18 14:18 被阅读0次

JBolt极速开发平台里需要提供多种富文本编辑器组件的集成和组件自动化。

最近很多项目里我都使用了一个轻量级好用的Html编辑器-Summernote

比如在【JFinal旅游线路营销管理平台】中的所有富文本编辑,都是用的Summernote。

lvyou.jpg image.png

这个项目因为是使用多选项卡模式,每个选项卡都是一个Iframe,那么这个Iframe加载页面,都是独立引入自己的js和css,所以初始化啊,渲染什么的也都正常。

然后,另外几个项目里,没有使用多选项卡Iframe加载模式,使用了PJAX模式加载的单页,局部刷新模式。

例如,JFinal俱乐部项目JFinal-club就是用的PJAX加载。

典型例子就是在JBolt极速开发平台里。

image.png

通过Pjax拦截器拦截请求,使用Jquery.pjax去加载局部Html片段。

这种方式,需要在被加载的html片段里,监听内容加载完成后初始化Summernote编辑器。

当然,因为Summernote做的非常优秀,简单几行代码就完成了,并没有收到pjax的影响,一切顺利。

JBolt里也提供了一键切换成多选项卡模式.用户可以根据喜好随时切换,PJAX+AJAXPORTAL+多选项卡模式 没有IFrame

image.png

但是JBOlt用户的需求,有很多做场景需要用到更高级的富文本编辑器,比如做合同管理的,需要在html编辑器里做排版内容很多,这时候用到了UEditor编辑器-百度团队贡献的。

这个编辑器褒贬不一,暂不评论,就使用而言,普通的页面跳转和Iframe加载 基本都没什么问题,一行JS就初始化渲染完成了。

image.png image.png

但是,在前后分离,VUE项目或者PJAX加载啊,AJAXPoral等动态局部html片段加载等场景下,这个玩意儿就出现二次渲染失效的bug,并不是我一个人遇到的。

image.png

去看UEditor的源码,找到这里:

image.png

getEditor的时候是从实例表里找有没有存在的,有的话直接返回 就不渲染了。

因为PJAX或者ajax 页面加载一次Editor后,实例有了,切换页面局部刷新,实例没变,所以造成渲染失败。

最终解决,其实就是加了一行代码的事儿。

image.png

在初始化之前,先删除掉存在的实例,这样就可以了。

JBolt极速开发平台和JFinal旅游线路营销平台都可以在线查看DEMO。

http://jbolt.cn

相关文章

  • PJAX模式下使用UEditor如何避免二次加载页面初始化失败?

    JBolt极速开发平台里需要提供多种富文本编辑器组件的集成和组件自动化。 最近很多项目里我都使用了一个轻量级好用的...

  • laravel-pjax【在 Laravel 5 中集成 Pja

    jquery-pjax说明 简介 Pjax 是一个 jQuery 插件,其作用是使用 ajax 来加速页面加载时间...

  • pjax疑难杂症bug

    1、莫名其妙的js时间失效或者动画变形 比如pjax加载当前页面时由于此前的js都加载过了,而pjax是通过aja...

  • 生命周期函数的使用

    onLoad:function() //页面加载时使用。完成整个页面的初始化操作onShow:function(...

  • 安卓简历技能点--设计模式

    一、单例模式 1、饿汉式 类加载时完成初始化(类加载慢),避免了多线程同步。但是类加载时初始化会造成内存浪费,也许...

  • js jquery 页面加载初始化方法

    一.js 页面加载初始化方法 二.jquery 页面加载初始化方法 $(document).ready(funct...

  • APP全局说明

    一、异常页面 1、图标 显示加载失败预置图 2、重新加载 加载失败时,页面提示“加载失败啦,请点击重新设置!” 交...

  • Robotium等待执行方法

    为了提高程序的健壮性,避免页面还未加载出来时就点击某控件造成的失败,可以使用一下几种solo提供的方法。 1.sl...

  • 设计模式之单例模式

    饿汉模式 类加载时便实例化,线程安全。 懒汉模式 使用时再初始化,但线程不安全 懒汉模式使用synchronize...

  • 同页面多个video标签技巧

    当小程序同个页面有多个video标签时,为了避免加载页面的时候同时预加载多个video的资源,使用同样大小的pos...

网友评论

    本文标题:PJAX模式下使用UEditor如何避免二次加载页面初始化失败?

    本文链接:https://www.haomeiwen.com/subject/uhvimctx.html