ThinkPHP中使用Ueditor富文本编辑器


Posted in PHP onSeptember 02, 2015

具体插件下载:
http://ueditor.baidu.com/website/download.html#ueditor

UEditor官方文档:
http://ueditor.baidu.com/website/document.html

之前于 "ThinkPHP-代码" 案例中发布版本:
http://www.thinkphp.cn/code/175.html

UEditor解压于:PUBLIC/Ueditor下(同级目录有:Common,Conf,Lib,Tpl等)

例:在Tpl/model/model.html :

<html>
<title>Ueditor文本编辑器</title>
<head>
  <title>完整demo</title>
  <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
  
  <load href="__PUBLIC__/Ueditor/ueditor.config.js" />
  <load href="__PUBLIC__/Ueditor/ueditor.all.min.js" />
  
  <!--使用版-->
  <!--<script type="text/javascript" charset="utf-8" src="../ueditor.all.js"></script>-->
 
  <!--开发版-->
  <!--<script type="text/javascript" charset="utf-8" src="editor_api.js"> </script>-->
 
  <!--建议手动加在语言,避免在ie下有时因为加载语言失败导致编辑器加载失败-->
  <!--这里加载的语言文件会覆盖你在配置项目里添加的语言类型,比如你在配置项目里配置的是英文,这里加载的中文,那最后就是中文-->
  <load href="__PUBLIC__/Ueditor/lang/zh-cn/zh-cn.js" />
 
  <style type="text/css">
    .clear {
      clear: both;
    }
  </style>
</head>
<body>
<div>
<form name='MyForm' id='MyForm' method='POST' action="__URL__/message_insert" >
  <script id="editor" name="editor" type="text/plain" style="width:1024px;height:300">
    从数据库中取出文章内容打印到此处!!!
  </script>
</form>
</div>
 
<div id="btns">
  <div>
    <button onclick="getAllHtml()">获得整个html的内容</button>
    <button onclick="getContent()">获得内容</button>
    <button onclick="setContent()">写入内容</button>
    <button onclick="setContent(true)">追加内容</button>
    <button onclick="getContentTxt()">获得纯文本</button>
    <button onclick="getPlainTxt()">获得带格式的纯文本</button>
    <button onclick="hasContent()">判断是否有内容</button>
    <button onclick="setFocus()">使编辑器获得焦点</button>
  </div>
  <div>
    <button onclick="getText()">获得当前选中的文本</button>
    <button onclick="insertHtml()">插入给定的内容</button>
    <button id="enable" onclick="setEnabled()">可以编辑</button>
    <button onclick="setDisabled()">不可编辑</button>
    <button onclick=" UE.getEditor('editor').setHide()">隐藏编辑器</button>
    <button onclick=" UE.getEditor('editor').setShow()">显示编辑器</button>
    <button onclick=" UE.getEditor('editor').setHeight(300)">设置编辑器的高度为300</button>
  </div>
 
</div>
<div>
  <button onclick="createEditor()"/>
  创建编辑器</button>
  <button onclick="deleteEditor()"/>
  删除编辑器</button>
  
  <button onclick="submitEditor()"/>
  提交</button>
</div>
</body>
<script type="text/javascript">
 
  //UEDITOR_HOME_URL、config、all这三个顺序不能改变(绝对路径)
  //window.UEDITOR_HOME_URL = "/ThinkPHP/Public/Ueditor/";  
  
  //实例化编辑器
  var ue = UE.getEditor('editor');
 
  function insertHtml() {
    var value = prompt('插入html代码', '');
    ue.execCommand('insertHtml', value)
  }
  function createEditor() {
    enableBtn();
    UE.getEditor('editor');
  }
  function getAllHtml() {
    alert(UE.getEditor('editor').getAllHtml())
  }
  function getContent() {
    var arr = [];
    arr.push("使用editor.getContent()方法可以获得编辑器的内容");
    arr.push("内容为:");
    arr.push(UE.getEditor('editor').getContent());
    alert(arr.join("\n"));
  }
  function getPlainTxt() {
    var arr = [];
    arr.push("使用editor.getPlainTxt()方法可以获得编辑器的带格式的纯文本内容");
    arr.push("内容为:");
    arr.push(UE.getEditor('editor').getPlainTxt());
    alert(arr.join('\n'))
  }
  function setContent(isAppendTo) {
    var arr = [];
    arr.push("使用editor.setContent('欢迎使用ueditor')方法可以设置编辑器的内容");
    UE.getEditor('editor').setContent('欢迎使用ueditor', isAppendTo);
    alert(arr.join("\n"));
  }
  function setDisabled() {
    UE.getEditor('editor').setDisabled('fullscreen');
    disableBtn("enable");
  }
 
  function setEnabled() {
    UE.getEditor('editor').setEnabled();
    enableBtn();
  }
 
  function getText() {
    //当你点击按钮时编辑区域已经失去了焦点,如果直接用getText将不会得到内容,所以要在选回来,然后取得内容
    var range = UE.getEditor('editor').selection.getRange();
    range.select();
    var txt = UE.getEditor('editor').selection.getText();
    alert(txt)
  }
 
  function getContentTxt() {
    var arr = [];
    arr.push("使用editor.getContentTxt()方法可以获得编辑器的纯文本内容");
    arr.push("编辑器的纯文本内容为:");
    arr.push(UE.getEditor('editor').getContentTxt());
    alert(arr.join("\n"));
  }
  function hasContent() {
    var arr = [];
    arr.push("使用editor.hasContents()方法判断编辑器里是否有内容");
    arr.push("判断结果为:");
    arr.push(UE.getEditor('editor').hasContents());
    alert(arr.join("\n"));
  }
  function setFocus() {
    UE.getEditor('editor').focus();
  }
  function deleteEditor() {
    disableBtn();
    UE.getEditor('editor').destroy();
  }
  
  //提交方法
  function submitEditor()  {
    //此处以非空为例
    if(ue.hasContents()){
      ue.sync();    //同步内容
      document.MyForm.submit();
    }
  }  
  
  function disableBtn(str) {
    var div = document.getElementById('btns');
    var btns = domUtils.getElementsByTagName(div, "button");
    for (var i = 0, btn; btn = btns[i++];) {
      if (btn.id == str) {
        domUtils.removeAttributes(btn, ["disabled"]);
      } else {
        btn.setAttribute("disabled", "true");
      }
    }
  }
  function enableBtn() {
    var div = document.getElementById('btns');
    var btns = domUtils.getElementsByTagName(div, "button");
    for (var i = 0, btn; btn = btns[i++];) {
      domUtils.removeAttributes(btn, ["disabled"]);
    }
  }
 
</script>
PHP 相关文章推荐
IStream与TStream之间的相互转换
Aug 01 PHP
php在字符串中查找另一个字符串
Nov 19 PHP
PHP写UltraEdit插件脚本实现方法
Dec 26 PHP
解析阿里云ubuntu12.04环境下配置Apache+PHP+PHPmyadmin+MYsql
Jun 26 PHP
php中 ob_start等函数截取标准输出的方法
Jun 22 PHP
php中preg_match的isU代表什么意思
Oct 01 PHP
使用Huagepage和PGO来提升PHP7的执行性能
Nov 30 PHP
在WordPress中安装使用视频播放器插件Hana Flv Player
Jan 04 PHP
PHP的Yii框架中创建视图和渲染视图的方法详解
Mar 29 PHP
php中preg_replace正则替换用法分析【一次替换多个值】
Jan 17 PHP
PHP数据分析引擎计算余弦相似度算法示例
Aug 08 PHP
Yii Framework框架开发微信公众平台示例
Apr 26 PHP
ECSHOP在PHP5.5及高版本上报错的解决方法
Aug 31 #PHP
php基础设计模式大全(注册树模式、工厂模式、单列模式)
Aug 31 #PHP
PHP中error_reporting()用法详解
Aug 31 #PHP
大家在抢红包,程序员在研究红包算法
Aug 31 #PHP
微信公众平台开发之天气预报功能
Aug 31 #PHP
百度地图经纬度转换到腾讯地图/Google 对应的经纬度
Aug 28 #PHP
PHP7.0安装笔记整理
Aug 28 #PHP
You might like
火影忍者:三大瞳力之一的白眼,为什么没有写轮眼那么出色?
2020/03/02 日漫
php环境配置 php5 mysql5 apache2 phpmyadmin安装与配置
2006/11/17 PHP
php 中文处理函数集合
2008/08/27 PHP
smarty中js的调用方法示例
2014/10/27 PHP
PHP检测用户是否关闭浏览器的方法
2016/02/14 PHP
详谈PHP面向对象中常用的关键字和魔术方法
2017/02/04 PHP
BOOM vs RR BO5 第一场 2.14
2021/03/10 DOTA
js 手机号码合法性验证代码集合
2012/09/29 Javascript
Jquery利用mouseenter和mouseleave实现鼠标经过弹出层且可以点击
2014/02/12 Javascript
利用try-catch判断变量是已声明未声明还是未赋值
2014/03/12 Javascript
JavaScript正则表达式的分组匹配详解
2016/02/13 Javascript
JavaScript代码性能优化总结篇
2016/05/15 Javascript
javascript cookie基础应用之记录用户名的方法
2016/09/20 Javascript
深入理解js中的加载事件
2017/02/08 Javascript
ES6正则的扩展实例详解
2017/04/25 Javascript
深入理解JavaScript和TypeScript中的class
2018/04/22 Javascript
vue.js中ref和$refs的使用及示例讲解
2019/08/14 Javascript
JavaScript实现省市联动效果
2019/11/22 Javascript
原生js实现点击按钮复制内容到剪切板
2020/11/19 Javascript
使用Python获取Linux系统的各种信息
2014/07/10 Python
Python基础知识_浅谈用户交互
2017/05/31 Python
Python利用BeautifulSoup解析Html的方法示例
2017/07/30 Python
python写一个md5解密器示例
2018/02/23 Python
Python 生成 -1~1 之间的随机数矩阵方法
2018/08/04 Python
python中将正则过滤的内容输出写入到文件中的实例
2018/10/21 Python
jupyter notebook中新建cell的方法与快捷键操作
2020/04/22 Python
在Keras中CNN联合LSTM进行分类实例
2020/06/29 Python
财务会计专业个人求职信范本
2014/01/08 职场文书
工程管理专业毕业生自荐信
2014/01/24 职场文书
第二批党的群众路线教育实践活动总结报告
2014/10/30 职场文书
三行辞职书范文
2015/02/26 职场文书
求职信内容一般写什么?
2015/03/20 职场文书
放假通知格式
2015/04/14 职场文书
鸦片战争观后感
2015/06/09 职场文书
小学生教师节广播稿
2015/08/19 职场文书
Python find()、rfind()方法及作用
2022/12/24 Python