UEditor:

UEditor - 首页
http://ueditor.baidu.com/website/

我们在对话框上放了几个 UEditor,发现第一次弹出对话框时UEditor还没有初始化 setContent 不能成功,于是加了一个 setTimeout 反复重试,后来发现关闭对话框后再打开还是不能正确的设置上去,原因是元素没有显示,遂有如下代码:

	(function setTitle(){
var edt = UE.getEditor("title");
if(edt == null || $(edt.body).is(':visible') == false){ // 不断重试到初始化并且可见
setTimeout(setTitle, 10);
return;
}
edt.ready(function(){ // 当 ready 时才能真正 setContent
this.setContent(tr.data("title"));
this.removeListener('ready', arguments.callee)
});
})();

之后,撸起袖子将其封装为一个 MOLECULE:

<div molecule-def="UEditor">
<script>
// MOLECULE_DEF
function UEditor(){
// 创建UIEditor...... var me = this;
function updateContent(){ // 基本照抄上面的 updateTitle
var edt = UE.getEditor(me.el);
if(edt == null || $(edt.body).is(':visible') == false){
setTimeout(updateContent, 10);
return;
}
edt.ready(function(){
this.setContent(me.value);
this.removeListener('ready', arguments.callee)
});
} this.setValue = function(v){
this.value = v;
updateContent();
}
this.getValue = function(){
var edt = UE.getEditor(this.el);
return edt ? edt.getContent() : this.value;
}
}
// MOLECULE_DEF_END
Molecule.create(UEditor)
</script>
</div>

该MOLECULE将值存放在 this.value 中,并包装了延迟设置逻辑,可以确保总能将值设置成功。

molecule 的两个函数命名为 getValue setValue,可以适配 d2js 前端渲染器 molecule 和收集器 m。

这个例子充分展示了 molecule 研发周期短,学习难度小的特点,从实现功能的 js 到 molecule 中的脚本块跳跃轻松,基本抄过去就形成了组件。

使用 MOLECULE 迅速包装百度 UEditor的更多相关文章

  1. 百度UEditor在线编辑器的配置和图片上传

    前言 最近在项目中使用了百度UEditor富文本编辑器,配置UEditor过程中遇到了几个问题,在此记录一下解决方案和使用方法,避免以后使用UEditor出现类似的错误. 基本配置 一.下载UEdit ...

  2. 百度ueditor 实例化 Cannot set property 'innerHTML' of null 完美解决方案

    此时此刻,我正在用博客园推荐的TinyMCE编辑器写这个博客,突然想起最近在项目中使用百度ueditor编辑器中的一些经历.所以记录在此,与大家分享. 不得不说,百度ueditor是一款很好的在线编辑 ...

  3. 百度Ueditor

    最近用到了百度Ueditor,也来写一写百度Ueditor的使用教程: 一.从官网下载百度Ueditor,http://ueditor.baidu.com/website/download.html, ...

  4. 百度UEditor组件出现Parameters: Invalid chunk &#39;&#39; ignored警告的分析

    使用百度UEditor在线编辑器组件时,出现Parameters: Invalid chunk '' ignored的警告,之前的项目使用却没有.两个项目的环境应该是一样的. 没有时间去对照两项目使用 ...

  5. 百度UEditor编辑器使用教程与使用方法

    我们在做网站的时候,网站后台系统一般都会用到web编辑器,今天笔者就给大家推荐一款百度UEditor编辑器.关于这款百度UEditor编辑器官网上也有简单的教程,不过看着比较费劲,今天笔者就跟大家分享 ...

  6. 解决百度Ueditor编辑器表格不显示边框问题

    一.主要内容 CMS使用百度Ueditor编辑器中的表格功能,在编辑模式下可以正常显示边框,而文章发布之后表格不能显示边框.本博文经过查阅相关资料,最终解决了该问题. 二.使用平台 1. dedecm ...

  7. ThinkPHP整合百度Ueditor

    文章来源:http://www.thinkphp.cn/code/267.html ThinkPHP整合百度Ueditor,基于黄永成老师的视频说明的申明:最好大家都能写绝对路径的都写好绝对路径比如: ...

  8. 百度UEditor编辑器关闭抓取远程图片功能(默认开启)

    这个坑娘的功能,开始时居然不知道如何触发,以为有个按钮,点击一下触发,翻阅了文档,没有发现,然后再网络上看到原来是复制粘贴非白名单内的图片到编辑框时触发,坑娘啊............... 问题又来 ...

  9. ThinkPHP整合百度Ueditor图文教程

    ThinkPHP整合百度Ueditor图文教程 ThinkPHP整合百度Ueditor,基于黄永成老师的视频说明的申明:最好大家都能写绝对路径的都写好绝对路径比如:window.UEDITOR_HOM ...

  10. 百度ueditor富文本编辑器的使用

    百度ueditor富文本编辑器的使用 //以下为我在官网下载的ueditor v1.3.5 php版的大楷配置步骤第一步: //配置文件的引入应该比功能文件先引入,最后设置语言类型.即:editor. ...

随机推荐

  1. logback.xml文件

    <?xml version = "1.0" encoding="UTF-8"?> <configuration debug = "f ...

  2. 有没有开发过⼀些vue插件?举例说说 - 批量引入插件

    有过,项⽬开发的时间⻓了,沉淀了不少业务通⽤全局组件,想把他们统⼀进⾏注册,就封装了⼀个⼩ 插件 当时其实⼀开始也没有什么思路,后来扒了⼀下 elementUI的源码,仿了⼀下它的写法,流程我还⼤概记 ...

  3. ssh建立github连接 基于ssh密钥

    1. 建立公钥和私钥 ps:公钥放在github上面的,私钥放在自己本地电脑 : 先生成密钥:打开 gitbash 输入命令: ssh-keygen -t rsa -b 4096 -C "z ...

  4. 云原生周刊:开发人员使用 GPT-4 的 30 种重要方法 | 2023-6-5

    OpenAI 最新的大型语言模型 GPT-4 有非常多的用途,那么,作为开发人员,应该如何去使用它,来帮助自己工作呢? 在最近的 Hacker News 问答中,很多开发人员参与了讨论和分享. 也有人 ...

  5. Ubuntu 22.04 全局快捷键失效问题

    安装完 Ubuntu 22.04 后,你有可能会发现系统的快捷键失效了.侧栏用 Win + x 选中程序不可用了.为各种应用程序设置的快捷键也不起作用了. 出现此现象的原因,是因为 Ubuntu 22 ...

  6. OpenSSH9.3p1升级实践

    安装Telnet服务 为了避免升级OpenSSH导致服务器不可连接.需要先下载安装Telnet组件.升级期间使用Telnet作为升级期间的服务器连接方式. 先查询telnet是否安装 rpm -qa ...

  7. Windows平台安装MongoDB步骤以及问题处理

    今天开始向MongoDB进军,结果一开始就给我来了个下马威--安装不成功,死在了第一步,我滴个乖乖,哪能服气,为了不让后面的小伙伴踩坑,特此记录,希望能帮到有需要的小伙伴. 一.安装步骤 1.下载安装 ...

  8. Sqlsugar调用Oracle的存储过程

    前段时间在搬迁项目的时候,遇到一个问题,就是用sqlsugar调用oracle的存储过程的时候调用不了: 当时卡了一整天,现在有空了把这个问题记录分享一下. 先去nuget上安装一下sqlsugar的 ...

  9. 基于Java+SpringBoot+Mysql实现的古诗词平台功能设计与实现五

    一.前言介绍: 1.1 项目摘要 随着信息技术的迅猛发展和数字化时代的到来,传统文化与现代科技的融合已成为一种趋势.古诗词作为中华民族的文化瑰宝,具有深厚的历史底蕴和独特的艺术魅力.然而,在现代社会中 ...

  10. python argparse变量到class变量的转换代码

    github上的项目总喜欢使用argparse + bash来运行,这对于快速运行一个项目来说可能有好处,但在debug的时候是很难受的.因为我们需要在.sh文件中修改传入参数,并且不能使用jupyt ...