【ExtJs】ExtJs的富文本编辑器

对于ExtJs表单中的多行文本框,本身就自带一个没有格式的textareafield。

如果要呈现一个带格式的文本编辑器给用户,ExtJs本身就自带一个htmlEditor。

一、基本目标

比如下图的带编辑器的文本框。

这个组件具有加粗、斜体、下划线,增加减少字号,颜色等功能,而且自动会对文本自动编码,无需担心跨站攻击,只要在后台防范好SQL注入就可以了。

如下图,即使在文本框输入如下网页脚本,也是能够正常运行的。

二、基本思想

首先,这个网页在ExtJs的布局如下,这个组件是由一个含有bbar的表单面板中,内含一个htmleditor与panel所组成。panel用来显示编辑之后的内容。在bbar中含有一个按钮,点击确定之后,htmleditor里的内容会提交到后台的formSubmit.php,然后后台再回调数据填充panel的内容。这个是ExtJs表单提交的基本机制,与《【ExtJs】ExtJs的表单插件与表单布局、提交与验证》(点击打开链接)中的一模一样。你可以同时在formSubmit.php把数据入库。然后在本页一开始就利用《【ExtJs】ExtJs的Ajax》(点击打开链接)的方式,在一开始就把数据库中的内容加载到panel里,这里为了简单说明,没有数据库这一步。

三、制作过程

1、ExtEditor.html中的html部分同样是什么都没有,直接把form.panel渲染到body标签中直接显示。设置好宽度为700与表单的提交方式为post,与《【ExtJs】ExtJs的表单插件与表单布局、提交与验证》(点击打开链接)中同样,使用anchor布局来布置表单面板。里面放置一个htmleditor,这个htmleditor要指明一个name属性给formSubmit.php获取数据。不提供改变字体的功能,因为这个编辑器仅能改变成各种英文字体,中文字体,什么宋体之类的一律没有。不过这很正常,在网页中本来就不应该出现字体设置。之后,与《【ExtJs】tabPanel标签页与修改标签页的内容》(点击打开链接)中一样,panel同样要在html设置一个带id的div,才能被控制,bbar左右放置两个占位符,然后中间就放一个按钮。表单提交成功之后,马上把formSubmit.php返回的msg放到panel里面。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <title>extExtEditor</title>
        <script type="text/javascript" src="../js/ext-all.js"></script>
        <script type="text/javascript" src="../js/bootstrap.js"></script>
        <script type="text/javascript" src="../js/ext-lang-zh_CN.js"></script>
        <link href="../ext-theme-classic/ext-theme-classic-all.css" rel="stylesheet" type="text/css">
    </head>
    <body>
    </body>
</html>
<script>
    Ext.onReady(function(){
        Ext.onReady(function(){
            var form1 = Ext.create('Ext.form.Panel', {
                renderTo: Ext.getBody(),
                width: 700,
                method: 'POST',
                layout: 'anchor',
                title: 'Ext编辑器',
                items: [{
                    xtype: 'htmleditor',
                    anchor: '100%',
                    name: 'content',
                    height: 250,
                    enableFont: false
                }, {
                    xtype: 'panel',
                    anchor: '100%',
                    title: '编辑的内容',
                    height: 250,
                    html: '<div id="viewcontent"></div>'
                }],
                bbar: [{
                    xtype: 'tbfill'
                }, {
                    xtype: 'button',
                    text: '确定',
                    disabled: true,
                    formBind: true,
                    listeners: {
                        click: function(){
                            var thisForm = form1.getForm();
                            thisForm.submit({
                                url: "formSubmit.php",
                                success: function(form, action){
                                    Ext.getDom("viewcontent").innerHTML = action.result.msg;
								}
                            });
                        }
                    }
                }, {
                    xtype: 'tbfill'
                }]
            });
        })
    });
</script>

2、formSubmit.php非常简单,获取ExtEditor.html传过来的content,按照ExtJs要求的方式打印相应的Json就可以了。正常来说,还应该如《【php】使用重定向,伪装表单处理页面不存在》(点击打开链接)中一样,先判断content是否为空,防止用户直接通过输入网址的方式,访问这一页。Aspx与Jsp的玩家请自便……在页面获取参数,打印个字符串,是非常简单的。

<?php
$content=$_REQUEST["content"];
echo "{
'success':true,
'msg':'{$content}'
}";
?>
时间: 2024-08-24 15:59:30

【ExtJs】ExtJs的富文本编辑器的相关文章

Extjs整合CKEditor富文本编辑器插件

CKEditor插件官方下载地址: http://ckeditor.com/download/releases 我使用的版本是 ExtJS5.1.0  CKEditor4.4.8 参考文章: http://www.2cto.com/kf/201401/270462.html http://www.tuicool.com/articles/6f2mMj http://blog.csdn.net/com185272358/article/details/24814109 http://witmax.

TinyMCE(富文本编辑器)

[转]TinyMCE(富文本编辑器)在Asp.Net中的使用方法 官网演示以及示例代码:https://www.tinymce.com/docs/demo/image-tools/ 转自:http://www.cnblogs.com/hahacjh/archive/2010/07/24/1784268.html TinyMCE 在Asp.Net中的使用方法其实挺简单的,从官方网站下载TinyMCE),然后将里面的jscripts目录拷到你的网站目录 假设你的aspx页面中某一个地方需要用到编辑器

Android富文本编辑器RichEditor的使用

以前有个项目做一个笔记本类似的东西,觉得写的不太好,最近重新写,就发现了这个富文本编辑器他的效果是这样的 感觉有点厉害啊 废话不多说开始撸码 1先添加依赖 dependencies { compile 'jp.wasabeef:richeditor-android:1.2.0' } 2写布局 <jp.wasabeef.richeditor.RichEditor android:id="@+id/editor" android:layout_width="match_pa

商城项目整理(四)JDBC+富文本编辑器实现商品增加,样式设置,和修改

UEditor富文本编辑器:http://ueditor.baidu.com/website/ 相应页面展示: 商品添加: 商品修改: 前台商品展示: 商品表建表语句: 1 create table TEST.GOODS_TABLE 2 ( 3 gid NUMBER not null, 4 gname VARCHAR2(90), 5 gdetails CLOB, 6 gpicture VARCHAR2(100), 7 gprice NUMBER, 8 gleixing NUMBER, 9 gpi

关于富文本编辑器UEditor

2017.1.18,星期三?     关于富文本编辑器:     富文本编辑器,Rich Text Editor, 简称 RTE, 是一种可内嵌于浏览器,所见即所得的文本编辑器. 富文本编辑器不同于文本编辑器,程序员可到网上下载免费的富文本编辑器内嵌于自己的网站或程序里(当然付费的功能会更强大些),方便用户编辑文章或信息.比较好的文本编辑器有kindeditor,fckeditor等. 关于UEditor:官网                           UEditor文档,我们的说明书

UEditor百度富文本编辑器--让编辑器自适应宽度的解决方案

UEditor百度富文本编辑器的initialFrameWidth属性,默认值是1000. 不能够自适应屏幕宽度.如图1: 刚开始的时候,我是直接设置initialFrameWidth=null的.效果如图2: 这样子UEditor百度富文本编辑器会在第一次加载的时候获取屏幕宽度,然后赋值给initialFrameWidth属性. 这样子确实是可以在第一次加载的时候适应屏幕宽度,但是却似乎宽度稍微过了一点点,超过上面的灰条了.而且这里还有一个问题: 当你改变浏览器大小时,会有个很严重的排版BUG

富文本编辑器UEditor的配置使用方法

将下载的富文本编辑器的文件解压后放到 webcontent 下 如果 文件中的jsp文件夹下的controller.java文件报错的话    就将jsp下的lib文件夹中的文件都复制到  web-inf 文件夹下的lib中,就可以解决报错的问题了 按理说 还需要修改config.js中的URL值  但是我没修改  运行也出来效果了 <%@ page language="java" contentType="text/html; charset=utf-8"

kindEditor 富文本编辑器 使用介绍

第一版:存放位置:  ---->把该创建的文件包放到javaWeb 过程的 WEB_INF 下:如图所示. 第二步:< kindEditor 插件的引用> :JS引用 1 <script type="text/javascript" charset="utf-8" src="/js/kindeditor-4.1.10/kindeditor-all-min.js"></script> 2 <scrip

富文本编辑器的使用

第一步: 添加富文本编辑器的js的引用: 第二步:在jsp中添加textarea域,因为富文本编辑器是基于这个域进行创建的 第三步:富文本编辑器的引用 第四步:提交表单前需要将富文本编辑器和texarea的内容同步

万里长征第二步——django个人博客(第六步 ——添加富文本编辑器)

下载kindeditor 在admin.py文件中配置链接 class Media: js = ( '/static/js/kindeditor-4.1.10/kindeditor-min.js', #引入主文件 '/static/js/kindeditor-4.1.10/lang/zh_CN.js', #引入中文文件 '/static/js/kindeditor-4.1.10/config.js', #引入配置文件 ) 在kindeditor根目录下创建配置文件config.js,,并配置 K