angularjs整合ueditor简介
来源:互联网 发布:苹果cms模板怎么用 编辑:程序博客网 时间:2024/06/15 03:02
angularjs整合ueditor简介
UEditor是一个富文本web编辑器,具有轻量,可定制,注重用户体验等特点,开源基于MIT协议,允许自由使用和修改代码,本文介绍的是Ueditor与angular JS整合的方法
Ueditor 1.4.3.3(jsp版本) 漏洞修复 ,修复方法见下文
1
Ueditor第二次加载Dom渲染失败的问题
2
多图上传-在线管理 谷歌浏览器下图片使用绝对路径资源禁止访问的问题
3
Controller.jsp图片判断问题
4
删除一些早已失效的功能,如图片在线搜索、谷歌地图等
前端——添加JS依赖
<script language="javascript" src="ueditor/ueditor.config.js"></script>
<script language="javascript" src="ueditor/ueditor.all.js"></script>
<script language="javascript" src="ueditor/ueditorDirective.js"></script>
前端——添加Module
var myAppModule= angular.module('app', ['ueditor.directive']);
后端——添加jar包
把ueditor/jsp/lib中的jar下添加到项目工程中,如果你的工程是maven工程,建议您建立user Libraries,并且加入到Deloyment Assembly中
注意:commons-io-2.4.jar为必须,不能小于这个版本,否则报错,因为没有ueditor所需的方法,如果你的commons-io小于这个版本,请升级
ueditor中的 controller.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"import="com.baidu.ueditor.ActionEnter" pageEncoding="UTF-8"%><%@ page trimDirectiveWhitespaces="true" %><% request.setCharacterEncoding( "utf-8" );response.setHeader("Content-Type" , "text/html");String rootPath = application.getRealPath( "/" );String action = request.getParameter("action");String result = new ActionEnter( request, rootPath ).exec();if( action!=null && (action.equals("listfile") || action.equals("listimage") ) ){ rootPath = rootPath.replace("\\", "/"); result = result.replaceAll(rootPath, "");}out.write( result );%>
ueditor中的 image.html 隐藏早已失效的在线搜索功能(display:none)
<div id="tabhead" class="tabhead"> <span class="tab" data-content-id="remote"><var id="lang_tab_remote"></var></span> <span class="tab focus" data-content-id="upload"><var id="lang_tab_upload"></var></span> <span class="tab" data-content-id="online"><var id="lang_tab_online"></var></span> <span class="tab" data-content-id="search" style="display:none"><var id="lang_tab_search"></var></span> </div>
ueditorDirective.js
(function() { 'use strict'; var page = angular.module('ueditor.directive', []); page.directive('ueditor', [ '$templateCache', function($templateCache) { return { restrict : 'AE', template : '<script id="ueditorId" name="content" type="text/plain">这里写你的初始化内容</script>', scope : false, compile: function(element, attr) { return { pre: function(scope, iElement, iAttrs, controller) { var editorFunctions=[ 'fullscreen', 'source', '|', 'undo', 'redo', '|', 'bold', 'italic', 'underline', 'fontborder', 'strikethrough', 'superscript', 'subscript', 'removeformat', 'formatmatch', 'autotypeset', 'blockquote', 'pasteplain', '|', 'forecolor', 'backcolor', 'insertorderedlist', 'insertunorderedlist', 'selectall', 'cleardoc', '|', 'rowspacingtop', 'rowspacingbottom', 'lineheight', '|', 'customstyle', 'paragraph', 'fontfamily', 'fontsize', '|', 'directionalityltr', 'directionalityrtl', 'indent', '|', 'justifyleft', 'justifycenter', 'justifyright', 'justifyjustify', '|', 'touppercase', 'tolowercase', '|', 'link', 'unlink', 'anchor', '|', 'imagenone', 'imageleft', 'imageright', 'imagecenter', '|', 'simpleupload', 'emotion', 'scrawl', 'insertframe', 'pagebreak', '|', 'horizontal', 'date', 'time', 'spechars', '|', 'inserttable', 'deletetable', 'insertparagraphbeforetable', 'insertrow', 'deleterow', 'insertcol', 'deletecol', 'mergecells', 'mergeright', 'mergedown', 'splittocells', 'splittorows', 'splittocols', 'charts', '|', 'preview', 'searchreplace', 'drafts'] ; scope.ueditorId=attr.id; scope.config={}; if(attr.config!=''&&attr.config!=undefined){ scope.config=$.parseJSON(attr.config); editorFunctions=editorFunctions.concat($.parseJSON(attr.config).functions); } UE.delEditor(scope.ueditorId); var editor = UE.getEditor(scope.ueditorId,{ toolbars: [editorFunctions] , initialContent : scope.config.content?scope.config.content:'', focus: scope.config.focus?scope.config.focus:false, indentValue:scope.config.indentValue?scope.config.indentValue:'2em', initialFrameWidth:scope.config.initialFrameWidth?scope.config.initialFrameWidth:1000, //初始化编辑器宽度,默认1000 initialFrameHeight:scope.config.initialFrameHeight?scope.config.initialFrameHeight:320, //初始化编辑器高度,默认320 readonly : scope.config.readonly?scope.config.readonly:false ,//编辑器初始化结束后,编辑区域是否是只读的,默认是false enableAutoSave: scope.config.enableAutoSave?scope.config.enableAutoSave:true, //启用自动保存 saveInterval: scope.config.saveInterval?scope.config.saveInterval:500, //自动保存间隔时间, 单位ms fullscreen : scope.config.fullscreen?scope.config.fullscreen:false,//是否开启初始化时即全屏,默认关闭 imagePopup: scope.config.imagePopup?scope.config.imagePopup:true, //图片操作的浮层开关,默认打开 allHtmlEnabled:scope.config.allHtmlEnabled?scope.config.allHtmlEnabled:false //提交到后台的数据是否包含整个html字符串 }); editor.ready(function(){ }); scope.ueditorSetContent=function(id,value){ var editor = UE.getEditor(id); editor.setContent(value); } scope.ueditorGetContent=function(id){ var editor = UE.getEditor(id); return editor.getContent(); } scope.ueditorGetContentTxt=function(id){ var editor = UE.getEditor(id); return editor.getContentTxt(); } }, post: function(scope, iElement, iAttrs, controller) { } } } } } ]);})();
构建ueditor结构
<div ueditor id="container" config="{{config}}" ></div>
<div ueditor id="container2" config="{{config2}}" ></div>
ueditor指令属性必须。 id必须,指定了编辑器的唯一标识。config可以省略,为ueditor的配置项。
配置ueditor
最简配置示例:初始化富文本内容即可
$scope.config={
content : '<p>test1</p>',
};
完整配置示例 :
$scope.config={ //初始化编辑器内容 content : '<p>test1</p>', //是否聚焦 focus默认为false focus : true, //首行缩进距离,默认是2em indentValue:'2em', //初始化编辑器宽度,默认1000 initialFrameWidth:1000, //初始化编辑器高度,默认320 initialFrameHeight:320, //编辑器初始化结束后,编辑区域是否是只读的,默认是false readonly : false , //启用自动保存 enableAutoSave: false, //自动保存间隔时间, 单位ms saveInterval: 500, //是否开启初始化时即全屏,默认关闭 fullscreen : false, //图片操作的浮层开关,默认打开 imagePopup:true, //提交到后台的数据是否包含整个html字符串 allHtmlEnabled:false, //额外功能添加 functions :['map','insertimage','insertvideo','attachment',,'insertcode','webapp','template','background','wordimage'] };
额外功能描述
属性
描述
打印功能
insertimage
具有在线图片管理、批量上传、插入在线图片这三个功能
insertvideo
具有批量上传、插入网络视频这两个功能
attachment
批量上传附件和附件在线管理功能
map
百度地图功能
insertcode
代码编辑器功能
template
模板功能
background
设置当前富文本编辑的背景
wordimage
图片转存功能
注意:上传图片/视频/附件保存在web目录/uedito/jsp/upload文件夹下
全局配置请修改ueditor.config.js文件,配置非常多,不在文档中一一列举,文件中配置用法已注释
上传配置请修改config.json文件,配置非常多,文件中配置用法已注释
Ueditor方法
.ueditorSetContent(id,value)
设置对应ueditor编辑器的内容,注意:这个方法不能在初始化之前使用
.ueditorGetContent(id)
获取ueditor编辑器中的全部内容
.ueditorGetContentTxt(id)
获取ueditor编辑器中的文本内容
Demo
Html
<pre name="code" class="html"> <div ueditor id="container" config="{{config}}" ></div> <div ueditor id="container2" config="{{config2}}" style="margin-top:20px" ></div> <button ng-click="getContent('container')" >获取container内容</button> <button ng-click="getContent('container2')" >获取container2内容</button> <br/> <br/> <button ng-click="getContentTxt('container')" >获取container内容Txt</button> <button ng-click="getContentTxt('container2')" >获取container2内容Txt</button> <br/> <br/> <button ng-click="setContent()" >设置container内容</button> <button ng-click="setContent2()" >设置container2内容</button>
JS
$scope.config={ //初始化编辑器内容 content : '<p>test1</p>', //是否聚焦 focus默认为false focus : true, //首行缩进距离,默认是2em indentValue:'2em', //初始化编辑器宽度,默认1000 initialFrameWidth:1000, //初始化编辑器高度,默认320 initialFrameHeight:320, //编辑器初始化结束后,编辑区域是否是只读的,默认是false readonly : false , //启用自动保存 enableAutoSave: false, //自动保存间隔时间, 单位ms saveInterval: 500, //是否开启初始化时即全屏,默认关闭 fullscreen : false, //图片操作的浮层开关,默认打开 imagePopup:true, //提交到后台的数据是否包含整个html字符串 allHtmlEnabled:false, functions :['map','insertimage','insertvideo','attachment','insertcode','template', 'background', 'wordimage'] }; $scope.config2={ functions :['map'] }; $scope.getContent=function(id){ var content=$scope.ueditorGetContent(id); alert(content); } $scope.getContentTxt=function(id){ var content=$scope.ueditorGetContentTxt(id); alert(content); } $scope.setContent=function(){ $scope.ueditorSetContent("container","111111"); } $scope.setContent2=function(){ $scope.ueditorSetContent("container2","222222"); }
- angularjs整合ueditor简介
- angularjs整合ueditor简介
- angularJS与IE8整合简介
- yii 整合 ueditor
- 帝国cms整合 ueditor
- 整合UEditor,SSH下
- springMVC 整合ueditor
- SpringMVC+Ueditor 整合
- ueditor+freemarker+springmvc整合
- ueditor 整合 springmvc
- springMVC整合UEditor
- SpringMVC整合UEditor
- ssm+shiro+UEditor整合
- spring Boot + Ueditor整合
- AngularJS 世界------Angularjs简介
- AngularJS 简介
- AngularJS简介
- angularjs 简介
- hdoj 5615 Jam's math problem (数学-因式分解)
- 2、Java面向对象
- 广播的启动方式,以及优缺点
- C++函数后面加const修饰
- 设计模式之单例模式
- angularjs整合ueditor简介
- tinypy源码笔记(三)——虚拟机启动过程以及字节码分析
- Spring中的注解如何实现降低耦合度
- xilinx fpga学习笔记4
- RTMPC直播连麦SDK助力APP成为下一个映客
- 3、Java 异常的捕获及处理
- WebStorm 12 2016.2.1 中文汉化破解版 激活码/注册码/
- 闭包,多说无益(未完待续。。。)
- 我的Android之旅(十四)---数据存储2---手机内存数据的读取