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 相关文章推荐
php URL编码解码函数代码
Mar 10 PHP
PHP中的生成XML文件的4种方法分享
Oct 06 PHP
Php中用PDO查询Mysql来避免SQL注入风险的方法
Apr 25 PHP
深入解析php之apc
May 15 PHP
PHP中redis的用法深入解析
Feb 20 PHP
php过滤所有恶意字符(批量过滤post,get敏感数据)
Mar 18 PHP
微信营销平台系统?刮刮乐的开发
Jun 10 PHP
PHP判断上传文件类型的解决办法
Oct 20 PHP
php在数据库抽象层简单使用PDO的方法
Nov 03 PHP
PHP线程的内存回收问题
Jul 08 PHP
PHP实现链式操作的原理详解
Sep 16 PHP
Laravel 的数据库迁移的方法
Jul 31 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
php 学习资料零碎东西
2010/12/04 PHP
php快递单号查询接口使用示例
2014/05/05 PHP
php绘制圆形的方法
2015/01/24 PHP
全面解析PHP操作Memcache基本函数
2016/07/14 PHP
PHP实现无限分类的实现方法
2016/11/14 PHP
dess中一个简单的多路委托的实现
2010/07/20 Javascript
浅析tr的隐藏和显示问题
2014/03/05 Javascript
textarea焦点的用法实现获取焦点清空失去焦点提示效果
2014/05/19 Javascript
使用typeof方法判断undefined类型
2014/09/09 Javascript
js实现同一页面多个运动效果的方法
2015/04/10 Javascript
移动端H5开发 Turn.js实现很棒的翻书效果
2016/06/20 Javascript
jQuery模拟Marquee实现无缝滚动效果完整实例
2016/09/29 Javascript
如何快速上手Vuex
2017/02/14 Javascript
JavaScript实现的冒泡排序法及统计相邻数交换次数示例
2017/04/26 Javascript
JavaScript实现树的遍历算法示例【广度优先与深度优先】
2017/10/26 Javascript
为输入框加入数字js校验代码分享
2017/11/02 Javascript
微信小程序功能之全屏滚动效果的实现代码
2018/11/22 Javascript
详解利用eventemitter2实现Vue组件通信
2019/11/04 Javascript
详解vue 中 scoped 样式作用域的规则
2020/09/14 Javascript
[06:53]DOTA2每周TOP10 精彩击杀集锦vol.3
2014/06/25 DOTA
pandas object格式转float64格式的方法
2018/04/10 Python
Python在groupby分组后提取指定位置记录方法
2018/04/20 Python
python中join()方法介绍
2018/10/11 Python
用Python编写一个高效的端口扫描器的方法
2018/12/20 Python
Python爬虫实现爬取百度百科词条功能实例
2019/04/05 Python
Django中ajax发送post请求 报403错误CSRF验证失败解决方案
2019/08/13 Python
Python中filter与lambda的结合使用详解
2019/12/24 Python
python脚本第一行如何写
2020/08/30 Python
python 录制系统声音的示例
2020/12/21 Python
德国机场停车位比较和预订网站:Ich-parke-billiger
2018/01/08 全球购物
金融专业大学生职业生涯规划范文
2014/01/16 职场文书
工厂保安员岗位职责
2014/01/31 职场文书
完美主义个人的自我评价
2014/02/17 职场文书
反四风对照检查材料思想汇报
2014/09/16 职场文书
教师节慰问信
2015/02/15 职场文书
四大名著读书笔记
2015/06/25 职场文书