SharePoint中的富文本编辑器控件
在sharepoint中,自带一个html文本编辑器,可以对字体的大小,颜色甚至复制和粘贴都可以。这次做项目我们准备通过spd把这个编辑器放到自定义的aspx页面中。费了很大的力气,终于在博客堂()和另一个老外的博客上找到了答案,简单的实现如下,具体的原理可以到博客堂看。
需求:把如下的控件放到自定义的aspx页面里。
实现:页面的开头做如下的引用:
<script type="text/javascript" lang ge="javascript" src="/_layouts/2052/form.js"></script>
把如下的代码放到页面响上。(文本操作栏是通过js实现的)
<textarea name="txtTextArea1" rows="6" cols="20" id="txtTextArea1" title="Body123" class="ms-long" ></textarea>
<script lang ge="javascript" type="text/javascript">
RTE_ConvertTextAreaToRichEdit("txtTextArea1", tr, false, "", "2052", null, null, null, null, null,"FullHtml", "\/",null,null,null,null);
</script>
当然,你也可以把textarea 换成服务器端的空间textbox,不过此时要注意RTE_ConvertTextAreaToRichEdit()的第一个参数和textbox的客户端的id值对应。
扩展:如果你需要的是如下的html编辑器
只需要把RTE_ConvertTextAreaToRichEdit()方法做如下的改动:
RTE_ConvertTextAreaToRichEdit("txtTextArea1", tr, false, "", "2052", null, null, null, null, null,"Compatible", "\/",null,null,null,null);
今天看到博客园中的一些 SharePoint 爱好者们在讨论关于 SharePoint 内容编辑器中的文件上传。
SharePoint Portal Server在这点上和一些OA应用相比缺乏几个特性,经常被用户提到:
1、只有门户列表的编辑器才能够添加图片,其他如通知列表的编辑器则不能在正文中直接插入图片。
2、内容编辑器不能像FreeTextBox这样方便的直接上传图片,必须将图片首先上传到文档库中,然后再通过URL引用。
问题确实是这样,不符合大多数用户的使用习惯。之前,我在开发公司门户的时候对这个问题有一点肤浅的了解,所以抛砖引玉,希望能够看到更好的解决方案。
其实,门户列表和通知列表中使用的内容编辑器是同一个控件,名字叫:RichTextBox,通过查看客户端的HTML代码可以分析出来。RichTextBox控件是通过Javascript创建的,他们之间工具条上的区别,如:剪切、复制、粘贴、添加图片等功能按钮取决于调用该控件时的一个属性:RestrictedMode。当RestrictedMode=true的时候插入图片的功能是被禁止显示的,此时的情况就出现在如通知列表编辑器的情况下。SharePoint对站点定义的模型确实值得称道,对他了解越深,就越发觉得精彩。在Page UnGhosted状态下,ONet.XML、Schema.XML、WebTemp.XML、DocIcon.XML支撑起WSS/SPS网站的框架结构,当然,这里我们不是谈论这个,我们关心的是另一个文件——FldTypes.XML。用自己的话来描述,FldTypes.XML的主要用途就是定义了列表和库的栏类型和显示样式。我们的主题也是从这个文件入手的!
在客户端察看一个通知列表的添加通知页面NewForm.aspx文件的客户端HTML代码中可以看到<SCRIPT>fld = new TextField(xxx,"xxx","xxx","xxx");......</script>这样形式的一段脚本,没错,就是它输出了那个令人难堪的编辑器。OK,脚步先停在这里,我们在去看FldTypes.XML文件,我喜欢用XMLSpy来查看XML,他对XML的结构再了解不过了,
从图中可以看到,最下面Field TypeName=Note的节就是当我们在创建栏时选择了多行文本形式时的样式定义了。在他的子节点中,我们可以找到图中的CDATA,正好和我们在客户端看到的Javascript对应。
明白了吗?玄机的地方就在Javascript中!
接着向下,Javascript的定义在Ows.js文件里,一番分析,在Ows.js的6082行,function RichTextFieldBuildUI()是用来Render编辑器UI的函数,而他调用了RTE_ConvertTextAreaToRichEdit。
strBaseElementID,
fRestrictedMode,
fAllowHyperlink,
strDirection,
strWebLocale)
其中第二个参数fRestrictedMode参数决定了编辑框是否使用限制模式。
一番改动之后,我已经能够在通知列表中使用和门户列表相同的编辑器了,可以以链接形式添加图片,但保存的时候还是无法正确的保存图片,图片会被自动去掉,当然,这是可以解决的,现在的精力容不得我继续深究了,毕竟这不是最影响我目前项目的重点。另一方面,至于想象将RichTextBox替换成FreeTextBox的可行性,我认为是很小的,通过修改Server端代码几乎没有可能,如果你有足够的精力改写Ows.js中的RTE_ConvertTextAreaToRichEdit函数,那么应该是可行的办法吧。
砖抛完了,可能几乎没用,只能提供一些思路。
转载于:https://www.cnblogs.com/Areas/archive/2012/06/12/2545901.html
SharePoint中的富文本编辑器控件相关推荐
- android富文本图片自适应,Android 图片混排富文本编辑器控件
一.一个Android 图片混排富文本编辑器控件(仿兴趣部落) 1.1 图片混排富文本控件 是一种图片和文字混合在一起的控件,文本之间可以插入图片,类似于网页的排版样式. 1.2 该控件主要是仿兴趣部 ...
- Android 图片混排富文本编辑器控件
概述 一个Android 图片混排富文本编辑器控件(仿兴趣部落) 详细 代码下载:http://www.demodashi.com/demo/12032.html 一.一个Android 图片混排富文 ...
- winform html编辑器控件,一个WinForm富文本编辑器控件
WinForm 上的富文本编辑器简直不要太少,虽然有 RichEdit,但是这个鬼极难用而且复杂,在插入图片和表格的时候简直抓狂,还要理解复杂的 RTF 格式. 我希望有一个文本控件,包括基本的格式设 ...
- kind富文本编辑器_在项目中集成富文本编辑器
前 言 现在学程序的都离不开 Markdown 语法了吧,Markdown 已经成为典型的转换为HTML的非正式规范和参考实现,现在市场上也出现了许多Markdown实现,在基本语法之上额外增加了 ...
- wangeditor ajax,laravel 中 wangEditor 富文本编辑器使用指南
在本课程中,老师使用的富文本编辑器是 2.0 的版本,且输入区域使用的 textarea,但是在新的 3.0 版本中(新版本富文本编辑器只需要引用一个js文件即可),开发者不建议使用 textarea ...
- 浏览器中插入富文本编辑器
常用的富文本编辑器有CKEditor.UEEditor.TinyEditor.KindEditor等.以下以kindeditor编辑器的使用为例. 1.官网下载KindEditor编辑器http:// ...
- 在前端网页中加入富文本编辑器
UEditor Docs这是UEditor官方网站,网站里有官方使用教程. 1.先把富文本编辑器的压缩包下载到本地,在我发布的资源里下载(不要积分) 解压之后主要是这个东西 2.把这个解压文件拖动到e ...
- php中html富文本编辑器,php + wangEditor 富文本编辑器的配置
小编最近做了一个项目,在用户发表文章的模块上,考虑到用户编写文章时的排版需求.要借助富文本编辑器.搜索发现,现在有很多免费的编辑器插件.例如:百度的Ueditor.Summernote .但是这几个插 ...
- 项目中的富文本编辑器该如何选择?
项目中经常需要用到富文本编辑器的时候,而常见的富文本编辑器都有哪些?该如何选择? 先看看市面上都有哪些可用的富文本编辑器: TinyMCE(插件式的,支持 Vue,React,Angular 框架) ...
最新文章
- 【C#/.NET】.NET6中全局异常处理
- CCIE-LAB-第一篇-教学导入环境
- input readonly 光标显示问题
- Linux Kernel Lock types and their rules
- 1002. 查找常用字符
- 习题:交换一组数据的位置
- NOIP2017错题
- GoldenGate Director安装
- cad插件加载bplot成功用不了_CAD批量打印,加载Batchplot.vlx那个。 为什么我电脑输入BPLOT命令后没反应啊??急急急,求大神们解救!...
- CVE-2013-3893 IE浏览器UAF漏洞分析
- WPE1.3C的详细使用教程
- 连接服务器没有发挥作用,iPhone“连到系统上的设备没有发挥作用”原因分析及解决方法...
- 上海落户计算机水平毕业研究生,2021上海积分落户应届毕业生直接落户上海
- jmeter beanshell关于小数参数定义转化
- python 拆包_python3拆包详解
- 写英文IEEE论文的技巧
- Cognos 11.0快速开发指南 Ⅰ
- 2022年亚太数学建模竞赛-问题C:全球变暖与否?-思路详解
- 一个简单的注册页面制作
- 使用hbase来解决上亿条数据的准实时响应
热门文章
- html5游戏指尖跟随,图片跟随手指滑动
- 新手学python书籍推荐_新手学python看哪本书
- java 内存模型6_深入理解Java内存模型(六)——final
- java页面登陆密码_java实现页面登陆2 密码加密
- shell编程最新总结大全
- java inputstream字节流_Java输入输出流ByteArrayInputStream和ByteArrayOutPutStream
- 干货总结:SPI总线详细要点
- 马云都退休20天了,2019年剩下不到100天了:你还没掌握Python 编程思维吗?
- HDLBits答案(21)_Verilog有限状态机(8)
- FPGA学习之verilog语言入门指导