java feditor,iceEditor

API

编辑器主函数

API类型说明

new ice.editor(id)id构建一个编辑器实例,需要给它传入一个id

create()创建或格式化编辑器,当配置完编辑器或者自定义一些参数之后可使用它来创建

getHTML()获取编辑器内的内容(html格式)

getText()获取编辑器内的文字内容(text内容,不包括html标签)

setValue(str)String设置编辑器内的内容

addValue(str)String追加内容,将内容追加到编辑器内容的尾部

getSelectText()获取选中的内容

getSelectHTML()获取选中的HTML

setText(str)String插入文字内容

setHTML(Node,Boolean)Node,Boolean将选中的内容添加样式,或在光标处插入新内容(Boolean需要为true)

Node为新节点,可给该节点附加一些样式或者属性,被选中的内容会被新节点包裹起来,boolean默认为false

编辑器配置项

API类型默认说明

widthString100%初始化编辑器的宽,要加上单位px

heightString400px初始化编辑器的高,要加上单位px

codeBooleanfalse编辑器的html源码模式是否打开

maxWindowBooleantrue设置编辑器的最大化和最小化

menuArray['backColor','fontSize','foreColor','bold','italic','underline','strikeThrough','line','justifyLeft','justifyCenter','justifyRight','indent','outdent','line','insertOrderedList','insertUnorderedList','line','superscript','subscript','createLink','unlink','line','insertHorizontalRule','table','files','music','video','insertImage','removeFormat','line','code']编辑器菜单配置,可自由调换菜单顺序与显示

backColorArray['#ffffff','#000000','#eeece1','#1f497d','#4f81bd','#c0504d','#9bbb59','#8064a2','#4bacc6','#f79646',

'#f2f2f2','#979797','#ddd9c3','#c6d9f0','#dbe5f1','#f2dcdb','#ebf1dd','#e5e0ec','#dbeef3','#fdeada',

'#d8d8d8','#595959','#c4bd97','#8db3e2','#b8cce4','#e5b9b7','#d7e3bc','#ccc1d9','#b7dde8','#fbd5b5',

'#bfbfbf','#3f3f3f','#938953','#548dd4','#95b3d7','#d99694','#c3d69b','#b2a2c7','#92cddc','#fac08f',

'#a5a5a5','#262626','#494429','#17365d','#366092','#953734','#76923c','#5f497a','#31859b','#e36c09',

'#7f7f7f','#0c0c0c','#1d1b10','#0f243e','#244061','#632423','#4f6128','#3f3151','#205867','#974806',

'#c00000','#ff0000','#ffc000','#ffff00','#92d050','#00b050','#00b0f0','#0070c0','#002060','#7030a0'];设置文字的背景颜色配置

foreColorArray同backColor颜色配置设置文字的颜色

创建编辑器

欢迎使用iceEditor富文本编辑器

new ice.editor("editor");

创建编辑器时,只需引入一个js文件即可,无序引入JQ、CSS等文件,整个编辑器只有一个js,编辑器的容器推荐使用div,当然也可以使用textarea标签,如下:

欢迎使用iceEditor富文本编辑器

不管哪种方式创建,一定要给容器指定一个唯一的id,然后实例化它new ice.editor('editor')就OK了……

欢迎使用iceEditor富文本编辑器

欢迎使用iceEditor富文本编辑器

new ice.editor("editor1");

new ice.editor("editor2");

iceEditor支持一个页面上无限创建多个编辑器,只要指定一个唯一的id,实例化它即可,创建方法与上面的相同!就是这么简单!

menu-菜单配置说明

//第一步:创建实例化对象

var e = new ice.editor('content');

//第二步:配置图片或附件上传提交表单的路径

//如果你的项目使用的php开发,可直接使用upload.php文件

//其它的编程语言需要你单独处理,后期我会放出.net java等语言代码

//具体与你平常处理multipart/form-data类型的表单一样

//唯一需要注意的就是:处理表单成功后要返回json格式字符串,不能包含其它多余的信息:

//url:文件的地址

//name:文件的名称(包含后缀)

//error:上传成功为0,其它为错误信息,将以弹窗形式提醒用户

//例如批量上传了两张图片:

//[

// {url:'/upload/img/153444.jpg', name:'153444.jpg', error:0},

// {url:'/upload/img/153445.jpg', name:'153445.jpg', error:'禁止该文件类型上传'}

//]

e.menu = [

'backColor', //字体背景颜色

'fontSize', //字体大小

'foreColor', //字体颜色

'bold', //粗体

'italic', //斜体

'underline', //下划线

'strikeThrough', //删除线

'justifyLeft', //左对齐

'justifyCenter', //居中对齐

'justifyRight', //右对齐

'indent', //增加缩进

'outdent', //减少缩进

'insertOrderedList', //有序列表

'insertUnorderedList', //无序列表

'superscript', //上标

'subscript', //下标

'createLink', //创建连接

'unlink', //取消连接

'hr', //水平线

'table', //表格

'files', //附件

'music', //音乐

'video', //视频

'insertImage', //图片

'removeFormat', //格式化样式

'code', //源码

'line' //菜单分割线

];

//第三步:创建

e.create();

编辑器的菜单配置为数组类型,菜单的功能说明请看上面列表,菜单的顺序可以随意调整,可以选择添加和移除,提示:'line'并不是编辑器的菜单,而是菜单中的分割线,用来分类使用!

设置编辑器尺寸

var e = new ice.editor('content');

e.width='700px'; //宽度

e.height='300px'; //高度

e.create();

编辑器的宽默认为100%,高为400px,设置其他尺寸时,一定要加上单位‘px’哦!

禁用编辑器

var e = new ice.editor('content');

e.disabled=true;

e.create();

获取内容

var e = new ice.editor('content');

console.log(e.getHTML()); //获取HTML格式内容

console.log(e.getText()); //获取Text格式内容

设置内容

var e = new ice.editor('content');

e.setValue('hello world!');

设置编辑器内的内容,一般文章编辑功能会用到这个函数,利用ajax给它异步传值非常方便!

追加内容

var e = new ice.editor('content');

e.addValue('hello world!');

追加内容,将内容追加到编辑器内容的尾部!

颜色配置

var e = new ice.editor('content');

//文字背景颜色

e.backColor = [

'#ffffff','#000000','#eeece1','#1f497d','#4f81bd','#c0504d','#9bbb59','#8064a2','#4bacc6','#f79646',

'#f2f2f2','#979797','#ddd9c3','#c6d9f0','#dbe5f1','#f2dcdb','#ebf1dd','#e5e0ec','#dbeef3','#fdeada',

'#d8d8d8','#595959','#c4bd97','#8db3e2','#b8cce4','#e5b9b7','#d7e3bc','#ccc1d9','#b7dde8','#fbd5b5',

'#bfbfbf','#3f3f3f','#938953','#548dd4','#95b3d7','#d99694','#c3d69b','#b2a2c7','#92cddc','#fac08f',

'#a5a5a5','#262626','#494429','#17365d','#366092','#953734','#76923c','#5f497a','#31859b','#e36c09',

'#7f7f7f','#0c0c0c','#1d1b10','#0f243e','#244061','#632423','#4f6128','#3f3151','#205867','#974806',

'#c00000','#ff0000','#ffc000','#ffff00','#92d050','#00b050','#00b0f0','#0070c0','#002060','#7030a0'

];

//文字颜色

e.foreColor = e.backColor;

e.create();

编辑器的文字与背景颜色配置均为数组类型,颜色值是HEX格式,该色系选用了百度编辑器(UEditor)内的色系,在文本编辑器上完全够用了,一般不需要给它重新配置颜色。

附件和图片上传

//第一步:创建实例化对象

var e = new ice.editor('content');

//第二步:配置图片或附件上传提交表单的路径

e.uploadUrl="/iceEditor/src/upload.php";

//如果你的项目使用的php开发,可直接使用官方自带的upload.php文件

//其它的编程语言需要你单独处理,后期我会放出.net java等语言代码

//具体与你平常处理multipart/form-data类型的表单一样

//唯一需要注意的就是:处理表单成功后要返回json格式字符串,不能包含其它多余的信息:

//url:文件的地址

//name:文件的名称(包含后缀)

//error:上传成功为0,其它为错误信息,将以弹窗形式提醒用户

//例如批量上传了两张图片:

//[

// {url:'/upload/img/153444.jpg', name:'153444.jpg', error:0},

// {url:'/upload/img/153445.jpg', name:'153445.jpg', error:'禁止该文件类型上传'}

//]

/*********************** 上传项配置区 开始 ***********************/

// 绝对路径

define('URL',str_ireplace(str_replace("/","\\",$_SERVER['PHP_SELF']),'',__FILE__));

//上传目录

$dir = isset($_SESSION['upload_path'])?$_SESSION['upload_path']:'/upload/files/'.date("Ymd").'/';

//上传控件名称

$field = 'file';

//支持上传的文件格式

$type = ['jpg','jpeg','png','gif','bmp','exe','flv','swf','mkv','avi','rm','rmvb','mpeg','mpg','ogg','ogv','mov',

'wmv','mp4','webm','mp3','wav','mid','rar','zip','tar','gz','7z','bz2','cab','iso','chm','doc','docx',

'xls','xlsx','ppt','pptx','pdf','txt','md','xml','torrent'];

//上传文件存储大小的限制-默认30M

$maxSize = 30 * 102400;

//上传文件的名称命名方式,默认以'time'方式命名

//time 将以时间戳+数字排序

//fileName 将以文件原来的名称命名,如果该文件含有中文,则自动改为time形式命名

//填写其它字符串(禁止填写中文),将以该字符串形式命名,如果为批量上传,则将该字符串后面添加数字排序防止重名

$rename = 'time';

/*********************** 上传项配置区 结束 ***********************/

//第二步:配置图片或附件上传提交表单的路径

//如果你的项目使用的php开发,可直接使用upload.php文件

//其它的编程语言需要你单独处理,后期我会放出.net java等语言代码

//具体与你平常处理multipart/form-data类型的表单一样

//唯一需要注意的就是:处理表单成功后要返回json格式字符串,不能包含其它多余的信息:

//url:文件的地址

//name:文件的名称(包含后缀)

//error:上传成功为0,其它为错误信息,将以弹窗形式提醒用户

//例如批量上传了两张图片:

//[

// {url:/upload/img/153444.jpg, name:153444.jpg, error:0},

// {url:/upload/img/153445.jpg, name:153445.jpg, error:'禁止该文件类型上传'}

//]

上传图片或者附件请配置upload.php文件,配置项已在该文件中详细说明,做为上传已经够用了,需要其他功能,例如图片缩略图和图片水印功能,请另加。iceEditor目前只配置了PHP语言的上传文件,其他语言后续再加,计划会有JAVA、.NET两门语言的上传,哪位大牛如果有比较好的上传类库可以传我一份,我的QQ:308018629(其实网上有很多的文件上传类库)。

截图粘贴

//截图粘贴功能默认为开启状态,如需关闭,请将screenshot设为false

var e = new ice.editor('content');

e.screenshot=false;

//截图粘贴功能默认为上传到服务期,如需关闭,请将screenshotUpload设为false

//禁用后,将默认以base64格式显示图片

var e = new ice.editor('content');

e.screenshotUpload=false;

插件开发

var e = new ice.editor('content');

e.addValue('hello world!');

//┌────────────────────────────────────────────────────────────────────────

//│ e.plugin(options)传参说明

//│────────────────────────────────────────────────────────────────────────

//│ options {json}

//│ ├ name {string} [必填]菜单唯一的name,可配置menu项显示与顺序

//│ ├ menu {string} [必填]展示在菜单栏上的按钮,可为图标或者文字

//│ ├ data {string} execCommand的命令

//│ ├ id {string} 菜单按钮上的id

//│ ├ css {string} 菜单按钮上的class

//│ ├ style {string} 该插件的style,以css文件中的样式形式书写

//│ ├ dropdown {string} 下拉菜单里的html,如果定义了popup,则该参数失效

//│ ├ popup {json} 弹窗json

//│ │ ├ width {int} 弹窗的宽度

//│ │ ├ height {int} 弹窗的高度

//│ │ ├ title {string} 弹窗上的标题

//│ │ └ content {string} 弹窗的内容,可为html

//│ ├ click {function} 按钮点击事件

//│ └ success {function} 插件安装成功后会自动执行该方法

//└────────────────────────────────────────────────────────────────────────

//function方式

e.plugin({

menu:'function方式',

name:'click',

click:function(e,z){

z.setText('hello world');

}

});

//execCommand命令

e.plugin({

menu:'删除命令',

name:'del',

data:'delete'

});

//下拉菜单类型

e.plugin({

menu:'下拉菜单',

name:'dropdown',

dropdown:'

复制选中的文字',

});

//弹出层类型

e.plugin({

menu:'弹窗演示',

name:'popup',

style:'.demo-p{margin-bottom:10px}.demo-button{padding:0 10px}',

popup:{

width:230,

height:120,

title:'我是一个demo',

content:'

在光标处插入hello world! 确定',

},

success:function(e,z){

//获取content中的按钮

var btn = e.getElementsByTagName('button')[0];

//设置点击事件

btn.οnclick=function(){

z.setText('hello world');

//关闭本弹窗

e.close()

}

}

});

e.create();

目前提供这四种形式的菜单类开发,后期将增加一些其它的,敬请期待!

预防XSS攻击

为了预防 xss 攻击,可使用一些xss类的过滤模块,推荐使用xss.js,因为它支持白名单过滤配置,并且可以通过自定义处理函数,对任意标签及其属性进行处理,使用很简单:

你需要这个XSS过滤模块,请到官方下载:http://jsxss.com/zh/index.html

在线演示:http://jsxss.com/zh/try.html

下面是使用案例

var e = new ice.editor("content");

var html = filterXSS(e.getHTML);

console.log(html); //过滤后的安全数据

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值