使用 MOLECULE 迅速包装百度 UEditor
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的更多相关文章
- 百度UEditor在线编辑器的配置和图片上传
前言 最近在项目中使用了百度UEditor富文本编辑器,配置UEditor过程中遇到了几个问题,在此记录一下解决方案和使用方法,避免以后使用UEditor出现类似的错误. 基本配置 一.下载UEdit ...
- 百度ueditor 实例化 Cannot set property 'innerHTML' of null 完美解决方案
此时此刻,我正在用博客园推荐的TinyMCE编辑器写这个博客,突然想起最近在项目中使用百度ueditor编辑器中的一些经历.所以记录在此,与大家分享. 不得不说,百度ueditor是一款很好的在线编辑 ...
- 百度Ueditor
最近用到了百度Ueditor,也来写一写百度Ueditor的使用教程: 一.从官网下载百度Ueditor,http://ueditor.baidu.com/website/download.html, ...
- 百度UEditor组件出现Parameters: Invalid chunk '' ignored警告的分析
使用百度UEditor在线编辑器组件时,出现Parameters: Invalid chunk '' ignored的警告,之前的项目使用却没有.两个项目的环境应该是一样的. 没有时间去对照两项目使用 ...
- 百度UEditor编辑器使用教程与使用方法
我们在做网站的时候,网站后台系统一般都会用到web编辑器,今天笔者就给大家推荐一款百度UEditor编辑器.关于这款百度UEditor编辑器官网上也有简单的教程,不过看着比较费劲,今天笔者就跟大家分享 ...
- 解决百度Ueditor编辑器表格不显示边框问题
一.主要内容 CMS使用百度Ueditor编辑器中的表格功能,在编辑模式下可以正常显示边框,而文章发布之后表格不能显示边框.本博文经过查阅相关资料,最终解决了该问题. 二.使用平台 1. dedecm ...
- ThinkPHP整合百度Ueditor
文章来源:http://www.thinkphp.cn/code/267.html ThinkPHP整合百度Ueditor,基于黄永成老师的视频说明的申明:最好大家都能写绝对路径的都写好绝对路径比如: ...
- 百度UEditor编辑器关闭抓取远程图片功能(默认开启)
这个坑娘的功能,开始时居然不知道如何触发,以为有个按钮,点击一下触发,翻阅了文档,没有发现,然后再网络上看到原来是复制粘贴非白名单内的图片到编辑框时触发,坑娘啊............... 问题又来 ...
- ThinkPHP整合百度Ueditor图文教程
ThinkPHP整合百度Ueditor图文教程 ThinkPHP整合百度Ueditor,基于黄永成老师的视频说明的申明:最好大家都能写绝对路径的都写好绝对路径比如:window.UEDITOR_HOM ...
- 百度ueditor富文本编辑器的使用
百度ueditor富文本编辑器的使用 //以下为我在官网下载的ueditor v1.3.5 php版的大楷配置步骤第一步: //配置文件的引入应该比功能文件先引入,最后设置语言类型.即:editor. ...
随机推荐
- 银河麒麟、中标麒麟学习实操资料汇总(含V4、V7、V10)
数据库和操作系统关系十分密切,因为数据库是运行于操作系统上的一个管理数据的应用.在数据库国产化替代的浪潮之下,一批批国产操作系统也崭露头角.墨天轮社区便选取了中国操作系统排行榜上排名靠前的麒麟软件,依 ...
- LINQ 统计字符频率
var arr = new string[] {"test","zhulongxu","asdfdgd","yangmi" ...
- 静态库封装之ComStr类
ComStr.h #pragma once #include <string> #include <vector> using namespace std; class Com ...
- ide 安装eval reset插件 Pycharm 永久破解
ide 安装eval reset插件 Pycharm 永久破解 1.安装eval reset的目的 Jetbrains家的产品有一个很良心的地方,他会允许你试用30天(这个数字写死在代码里了)以评估是 ...
- Android复习(三)清单文件中的元素——>application
<application> 语法: <application android:allowTaskReparenting=["true" | "false ...
- python使用协程完成批量模拟支付
import asyncio import sys from queue import Queue sys.path.append("../") # from tool.__ini ...
- MySql5.7及以上 ORDER BY 报错问题
一.问题 本人使用的MySql版本是8.0的 当MySql5.7及以上的版本执行带有 ORDER BY 的SQL语句时可能会报错. 例如,执行以下mysql语句: SELECT id, user_id ...
- My SQL 下载和安装图文解说
一.下载My SQL 官网下载地址:https://downloads.mysql.com/archives/installer/ 选择需要下载的版本,点击download.本文选择下载的版本是8.0 ...
- TOYOTA SYSTEMS Programming Contest 2024(AtCoder Beginner Contest 377) 补题记录(A-E)
AtCoder Beginner Contest 377 A - Rearranging ABC 字符串有ABC三个字母即可. #include<bits/stdc++.h> using ...
- C#/.NET/.NET Core技术前沿周刊 | 第 11 期(2024年10.21-10.31)
前言 C#/.NET/.NET Core技术前沿周刊,你的每周技术指南针!记录.追踪C#/.NET/.NET Core领域.生态的每周最新.最实用.最有价值的技术文章.社区动态.优质项目和学习资源等. ...