- 浏览: 281772 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
iceblue123:
厉害,太感谢楼主了,第二种方法威武!
spring MVC 3.2中@ResponseBody返回乱码的完美解决方案 -
gaozi131:
感谢啊 折腾了一下午搞定
spring MVC 3.2中@ResponseBody返回乱码的完美解决方案 -
yenshen:
找了半天,问题终于解决了,感谢!
spring MVC 3.2中@ResponseBody返回乱码的完美解决方案 -
笑闯天下:
感觉效率不是很高啊 ,如果从数据库中取到的数据 还要去自己拼接 ...
java导出CSV文件 -
ajonjun:
http://viralpatel.net/
解决ckeditor html不显示,ckeditor 自动过滤html
Editor.htm
<textarea style="behavior:url('Editor.htc');"></textarea> Editor.htc <public:attach event=oncontentready onevent=initEditor()> <script> //对象 var vColorObject=null; var vFontObject=null; var vFontFamilyDiv=null; var vFontSizeDiv=null; var vFileObject=null; var vConsoleDiv=null; var vEditorDiv=null; //按钮提示文本 var strButtonTitleArray=new Array("新建","打开","保存","剪切","复制","粘贴","取消","恢复","粗体","斜体","下划","表格","向左","居中","向右","编号","符号","缩进","缩出","字色","字号","字体","图像","链接","水平","打印","预览"); //按钮静态文本 var strButtonValueArray=new Array("新建","打开","保存","剪切","复制","粘贴","取消","恢复","粗体","斜体","下划","表格","向左","居中","向右","编号","符号","缩进","缩出","字色","字号","字体","图像","链接","水平","打印","预览"); //按钮接口程序 var strButtonDefineFunctionArray=new Array("defineNew()", "defineOpen()", "defineSave()", "defineCut()", "defineCopy()", "definePaste()", "defineUndo()", "defineRedo()", "defineBold()", "defineItalic()", "defineUnderLine()", "defineTable()", "defineJustifyLeft()", "defineJustifyCenter()", "defineJustifyRight()", "defineInsertOrderedList()", "defineInsertUnorderedList()", "defineOutdent()", "defineIndent()", "defineColor()", "defineFontSize()", "defineFontFamily()", "defineInsertImage()", "defineCreateLink()", "defineInsertHorizontalRule()", "definePrint()", "definePreview()"); //按钮图标 var strButtonDefineIconArray=new Array("","","","","","","","","","","","","","","","","","","","","","","","","","",""); //按钮响应库 function defineNew() { vEditorDiv.innerHTML=""; } function defineOpen() { openFileDlg(); } function defineSave() { element.value=vEditorDiv.innerHTML; } function defineCut() { vEditorDiv.focus(); document.execCommand("Cut"); vEditorDiv.focus(); } function defineCopy() { vEditorDiv.focus(); document.execCommand("Copy"); vEditorDiv.focus(); } function definePaste() { vEditorDiv.focus(); document.execCommand("Paste"); vEditorDiv.focus(); } function defineUndo() { vEditorDiv.focus(); document.execCommand("Undo"); vEditorDiv.focus(); } function defineRedo() { vEditorDiv.focus(); document.execCommand("Redo"); vEditorDiv.focus(); } function defineBold() { vEditorDiv.focus(); document.execCommand("Bold"); vEditorDiv.focus(); } function defineItalic() { vEditorDiv.focus(); document.execCommand("Italic"); vEditorDiv.focus(); } function defineUnderLine() { vEditorDiv.focus(); document.execCommand("UnderLine"); vEditorDiv.focus(); } function defineTable() { window.confirm("Table"); } function defineJustifyLeft() { vEditorDiv.focus(); document.execCommand("JustifyLeft"); vEditorDiv.focus(); } function defineJustifyCenter() { vEditorDiv.focus(); document.execCommand("JustifyCenter"); vEditorDiv.focus(); } function defineJustifyRight() { vEditorDiv.focus(); document.execCommand("JustifyRight"); vEditorDiv.focus(); } function defineInsertOrderedList() { vEditorDiv.focus(); document.execCommand("InsertOrderedList"); vEditorDiv.focus(); } function defineInsertUnorderedList() { vEditorDiv.focus(); document.execCommand("InsertUnorderedList"); vEditorDiv.focus(); } function defineOutdent() { vEditorDiv.focus(); document.execCommand("Outdent"); vEditorDiv.focus(); } function defineIndent() { vEditorDiv.focus(); document.execCommand("Indent"); vEditorDiv.focus(); } function defineColor() { chooseColor(); } function defineFontSize() { chooseFontSize(); } function defineFontFamily() { chooseFontFamily(); } function defineInsertImage() { vEditorDiv.focus(); document.execCommand("InsertImage"); vEditorDiv.focus(); } function defineCreateLink() { vEditorDiv.focus(); document.execCommand("CreateLink"); vEditorDiv.focus(); } function defineInsertHorizontalRule() { vEditorDiv.focus(); document.execCommand("InsertHorizontalRule"); vEditorDiv.focus(); } function definePrint() { vEditorDiv.focus(); document.execCommand("Print"); vEditorDiv.focus(); } function definePreview() { window.confirm("Preview"); } //辅助函数 //颜色滴管 function chooseColor() { var strReturnColor=vColorObject.ChooseColorDlg("FFFFFF"); strReturnColor=strReturnColor.toString(16); if(strReturnColor.length<6) { var strTempString="000000".substring(0,6-strReturnColor.length); strReturnColor=strTempString.concat(strReturnColor); } vEditorDiv.focus(); document.execCommand("ForeColor",false,strReturnColor); vEditorDiv.focus(); } function chooseFontSize() { var vObject=window.event.srcElement; vFontSizeDiv.style.display=""; vFontSizeDiv.style.left=getElementDefineLeft(vObject); vFontSizeDiv.style.top=getElementDefineTop(vObject)+vObject.offsetHeight; element.document.attachEvent('onmousedown',onDocumentMouseDown); } function chooseFontFamily() { var vObject=window.event.srcElement; vFontFamilyDiv.style.display=""; vFontFamilyDiv.style.left=getElementDefineLeft(vObject); vFontFamilyDiv.style.top=getElementDefineTop(vObject)+vObject.offsetHeight; element.document.attachEvent('onmousedown',onDocumentMouseDown); } //打开文件 function openFileDlg() { try { vFileObject.CancelError=true; vFileObject.ShowOpen(); return vFileObject.filename; } catch(e) { return e; } } function onFontFamilyChange() { var vObject=window.event.srcElement; var strReturnFontFamily=vObject.options[vObject.selectedIndex].text; vEditorDiv.focus(); document.execCommand("FontName",false,strReturnFontFamily); vEditorDiv.focus(); vFontFamilyDiv.style.display="none"; element.document.detachEvent("onmousedown",onDocumentMouseDown); } function onFontSizeChange() { var vObject=window.event.srcElement; var strReturnFontSize=vObject.options[vObject.selectedIndex].text; vEditorDiv.focus(); document.execCommand("FontSize",false,strReturnFontSize); vEditorDiv.focus(); vFontSizeDiv.style.display="none"; element.document.detachEvent("onmousedown",onDocumentMouseDown); } function onDocumentMouseDown() { if(vFontFamilyDiv.contains(event.srcElement)) { return; } if(vFontSizeDiv.contains(event.srcElement)) { return; } vFontSizeDiv.style.display="none"; vFontFamilyDiv.style.display="none"; element.document.detachEvent("onmousedown",onDocumentMouseDown); } //初始化函数 function initEditor() { element.style.display="none"; vConsoleDiv=document.createElement("div"); vConsoleDiv.style.border="1px solid #000000"; vConsoleDiv.style.borderBottom="0px solid #000000"; vConsoleDiv.style.position="absolute"; vConsoleDiv.style.width="100%"; vConsoleDiv.style.left=getElementDefineLeft(element); vConsoleDiv.style.top=getElementDefineTop(element); window.document.body.insertAdjacentElement("afterbegin",vConsoleDiv); initConsole(); vEditorDiv=document.createElement("div"); vEditorDiv.style.border="1px solid #000000"; vEditorDiv.style.position="absolute"; vEditorDiv.style.width="100%"; vEditorDiv.style.height="50%"; vEditorDiv.contentEditable=true; vEditorDiv.style.left=getElementDefineLeft(element); vEditorDiv.style.top=getElementDefineTop(element)+vConsoleDiv.offsetHeight; window.document.body.insertAdjacentElement("afterbegin",vEditorDiv); vColorObject=document.createElement("object"); vColorObject.classid="clsid:3050F819-98B5-11CF-BB82-00AA00BDCE0B"; vColorObject.codeBase=""; vColorObject.style.width=0; vColorObject.style.height=0; window.document.body.insertAdjacentElement("afterbegin",vColorObject); vFontObject=document.createElement("object"); vFontObject.classid="clsid:3050F819-98B5-11CF-BB82-00AA00BDCE0B"; vFontObject.codeBase=""; vFontObject.style.width=0; vFontObject.style.height=0; window.document.body.insertAdjacentElement("afterbegin",vFontObject); //字体选择初始化 vFontFamilyDiv=document.createElement("div"); var vSelect=document.createElement("select"); vSelect.style.border="1px solid #000000"; vSelect.length=vFontObject.fonts.count; for(kIndex=1;kIndex<=vFontObject.fonts.count;kIndex++) { vOption=document.createElement("option"); vOption.value=kIndex; vOption.text=vFontObject.fonts(kIndex); vSelect.add(vOption); } vSelect.attachEvent("onchange",onFontFamilyChange); vFontFamilyDiv.appendChild(vSelect); window.document.body.insertAdjacentElement("afterbegin",vFontFamilyDiv); vFontFamilyDiv.style.display="none"; vFontFamilyDiv.style.position="absolute"; //字号选择初始化 vFontSizeDiv=document.createElement("div"); var vSelect=document.createElement("select"); vSelect.style.border="1px solid #000000"; for(kIndex=1;kIndex<=7;kIndex++) { vOption=document.createElement("option"); vOption.value=kIndex; vOption.text=kIndex; vSelect.add(vOption); } vSelect.attachEvent("onchange",onFontSizeChange); vFontSizeDiv.appendChild(vSelect); window.document.body.insertAdjacentElement("afterbegin",vFontSizeDiv); vFontSizeDiv.style.display="none"; vFontSizeDiv.style.position="absolute"; // vFileObject=document.createElement("object"); vFileObject.classid="clsid:F9043C85-F6F2-101A-A3C9-08002B2F49FB"; vFileObject.codeBase="http://activex.microsoft.com/controls/vb5/comdlg32.cab"; vFileObject.style.width=0; vFileObject.style.height=0; window.document.body.insertAdjacentElement("afterbegin",vFileObject); } //初始化控制按钮面板 function initConsole() { var vTable=document.createElement("table"); vTable.style.backgroundColor="buttonface"; vTable.style.borderTop="1px solid buttonhighlight"; vTable.style.borderLeft="1px solid buttonhighlight"; vTable.style.borderBottom="1px solid buttonshadow"; vTable.style.borderRight="1px solid buttonshadow"; vTable.style.width="100%"; //vTable.style.filter="Alpha(Opacity=60)";//半透明效果. var vTr=vTable.insertRow(0); var vTd=vTr.insertCell(0); /* vTd.style.backgroundColor="buttonface"; vTd.style.borderTop="1px solid buttonhighlight"; vTd.style.borderLeft="1px solid buttonhighlight"; vTd.style.borderBottom="1px solid buttonshadow"; vTd.style.borderRight="1px solid buttonshadow"; */ for(kIndex=0;kIndex<strButtonTitleArray.length;kIndex++) { var vA=document.createElement("a"); vA.style.border="1px solid buttonface"; vA.style.textAlign="center"; vA.style.cursor="default"; vA.style.font="normal 9pt 宋体"; vA.id=kIndex; vA.innerHTML=strButtonValueArray[kIndex]; vA.title=strButtonTitleArray[kIndex]; vTd.appendChild(vA); vA.attachEvent("onmousedown",onButtonMouseDown); vA.attachEvent("onmouseout",onButtonMouseOut); vA.attachEvent("onmouseover",onButtonMouseOver); vA.attachEvent("onmouseup",onButtonMouseUp); vA.attachEvent("onclick",onButtonClick); } vConsoleDiv.appendChild(vTable); } //按钮响应事件 function onButtonMouseDown() { var vObject=window.event.srcElement; vObject.style.borderTop="1px solid buttonshadow"; vObject.style.borderLeft="1px solid buttonshadow"; vObject.style.borderBottom="1px solid buttonhighlight"; vObject.style.borderRight="1px solid buttonhighlight"; } function onButtonMouseOut() { var vObject=window.event.srcElement; vObject.style.backgroundColor=""; vObject.style.border="1px solid buttonface"; } function onButtonMouseOver() { var vObject=window.event.srcElement; vObject.style.borderTop="1px solid buttonhighlight"; vObject.style.borderLeft="1px solid buttonhighlight"; vObject.style.borderBottom="1px solid buttonshadow"; vObject.style.borderRight="1px solid buttonshadow"; } function onButtonMouseUp() { var vObject=window.event.srcElement; vObject.style.borderTop="1px solid buttonhighlight"; vObject.style.borderLeft="1px solid buttonhighlight"; vObject.style.borderBottom="1px solid buttonshadow"; vObject.style.borderRight="1px solid buttonshadow"; } function onButtonClick() { var vObject=window.event.srcElement; eval(strButtonDefineFunctionArray[vObject.id]); } //函数库 //取元素绝对位置Left function getElementDefineLeft(vObject) { var iElementLeft=vObject.offsetLeft; while(vObject=vObject.offsetParent) { iElementLeft+=vObject.offsetLeft; } return iElementLeft; } //取元素绝对位置Top function getElementDefineTop(vObject) { var iElementTop=vObject.offsetTop; while(vObject=vObject.offsetParent) { iElementTop+=vObject.offsetTop; } return iElementTop; } </script> </public:attach>
发表评论
-
20条ASP.NET常用语句非常实用
2009-12-22 23:39 13761.//弹出对话框.点击转向指定页面 Response.Wr ... -
C#/.NET主线程与子线程之间的关系
2009-12-22 23:10 2400以前一直没有在程序中写过总结,再翻开程序时却不知所云,所以我决 ... -
Using sqlite with .NET
2009-12-08 00:01 921The other day I found that ther ... -
C#操作Excel,套用模板并对数据进行分页
2009-12-07 23:52 2180using System; using System.I ... -
动态生成缩略图
2009-12-07 23:49 1347Util.cs 的部分代码: //// <summa ... -
如何获取客户IE统计信息
2009-12-07 23:47 1038namespace Huawei.com { p ... -
运用API函数获取系统信息
2009-12-07 23:44 1106<HTML> <HEAD> ... -
WMI类-所有可用的WMI的类封装
2009-12-07 23:43 1694public class WMIClasses ... -
自己写的一个文件上传的类
2009-12-07 23:42 1067using System; using System.C ... -
文件操作工具类 FileUtility
2009-12-07 23:41 1274最近一直在研究 Smart Client 的 Smart Up ... -
C# 检查字符串,防SQL注入攻击
2009-12-07 23:16 1833例子里暂定为=号和'号 bool CheckParams ... -
获取本机机器名和登录WINDOWS的用户名?
2009-12-07 23:13 3634using System; using System. ... -
C# 禁用ctrl+alt+del
2009-12-07 23:09 1851using System; using System.R ... -
获取应用程序进程实例,
2009-12-07 23:07 1306/// <summary> ... -
如何在C#中使用全局鼠标、键盘Hook
2009-12-07 23:03 2657今天,有个同事问我,怎样在C#中使用全局钩子?以前写的全局钩子 ... -
把Web Control导出为Excel或Word
2009-12-07 22:58 1038/// <summary> /// 将Web ... -
C#编程忘记密码功能的实现方法
2009-12-07 22:55 2389以下是引用片段: int result = user.Ge ... -
C#实现USB接口的程序代码
2009-12-07 22:53 1923namespace ConsoleApplication1 ... -
定自已的格式化类
2009-12-07 22:20 824public class Vector:IFormatta ... -
调用winapi中的FlashWindow
2009-12-07 22:18 14371.引用 using System.Runtime.In ...
相关推荐
这个功能在许多Web应用中都有应用,例如在线编辑器、评论系统或者表单填写等。在这个场景下,我们需要实现一个能够动态计算textarea中字符数的机制,并可能附加一些额外的功能,比如限制最大字数,或者显示剩余字数...
在构建在线编辑器时,jQuery的灵活性和易用性为我们提供了极大的便利。 而ThinkPHP是一款基于PHP的开源框架,以其简洁、高效的MVC模式和丰富的内置组件,深受开发者的喜爱。在构建在线编辑器时,我们可以利用...
这个方法对于需要动态获取用户输入位置的应用非常有用,例如在开发富文本编辑器时。 2. setCursorPosition:设置光标位置的方法。它通过传入textarea元素和光标位置值来改变光标位置。在某些应用场景下,需要动态...
标题 "教你在线开发HTML编辑器" 涉及的核心知识点是创建一个用户界面,用于让用户在Web应用中编辑和格式化HTML内容。HTML编辑器通常用于博客、论坛、CMS(内容管理系统)等场合,使非程序员也能方便地编辑富文本。 ...
- **textarea标签**:创建多行文本输入区域,适合输入较长的文本内容。 - **label标签**:为其他表单控件创建标签,提高表单的可访问性和可用性。 - **checkboxGroup标签**:创建一组复选框,方便管理和操作多个...
总结来说,Tinymce富文本编辑器的封装是一个集成了编辑器基本功能设置、个性化配置、事件处理以及可能的插件集成的过程,目的是为了让它更好地服务于特定的Web应用。通过深入理解和灵活运用,开发者可以构建出满足...
总之,`jQuery富文本编辑器插件-wysiwyg.js`是Web开发中一个实用的工具,它将复杂的技术细节封装起来,使开发者能更专注于内容的创作和交互体验的设计。无论是小型项目还是大型应用程序,它都能提供高效、可靠的富...
SinaEditor编辑器主要由JavaScript和HTML组成,但在.NET环境中,通常会通过AJAX或者WebControl的方式进行封装,以便更好地与ASP.NET应用程序交互。编辑器提供了文本格式化、插入图片、链接创建、插入表格等多种常见...
富文本编辑器是一种在网页上实现用户可以进行复杂文本编辑的工具,通常用于博客、论坛、CMS(内容管理系统)等在线平台。它们提供了一种友好的界面,让用户能够像在桌面文字处理软件中那样编辑文本,包括字体设置、...
在Web开发中,富文本编辑器是不可或缺的一部分,它允许用户在网页上创建、编辑和格式化文本,就像在桌面应用程序中使用Word那样。百度的UEditor是一款功能强大的富文本编辑器,它提供了丰富的编辑选项,包括字体设置...
`form`标签库则提供了表单验证功能,如`<form:errors>`用于显示错误信息,`<form:input>`和`<form:textarea>`则用于创建带验证规则的输入字段。 视频教程会详细介绍这些标签的使用方法,通过实例演示如何在实际开发...
虽然现在有了更多选择,但理解FCKeditor的工作原理和封装方法对于理解富文本编辑器的运作机制仍然具有重要意义。在实际项目中,开发者可以根据需求选择合适的编辑器,并进行相应的封装,以提高开发效率和产品质量。
对于“web-form-portlet.rar”,这可能是一个封装了特定Web表单功能的Portlet插件。 五、开发实践 在实际开发中,我们可能会遇到以下挑战: - 兼容性问题:确保Portlet在不同门户容器上的兼容性和性能。 - 安全性:...
这通常涉及到为指定元素(如<textarea>)调用库的初始化函数,设置相关配置,如宽度、高度、工具栏按钮等。 3. **数据交互**:当用户编辑内容后,富文本框会将内容以HTML格式存储。你需要监听编辑器的事件(如...
AngularJS的核心特性包括双向数据绑定、依赖注入、模块化和指令系统,这些都为构建富文本编辑器提供了便利。在这个项目中,开发者可能利用了AngularJS的数据绑定来同步编辑器中的文本内容与模型数据,这样当用户在...
Struts2是一个强大的MVC(模型-视图-控制器)框架,用于构建Java Web应用程序。在Struts2中,标签库极大地简化了视图层的开发,提供了丰富的UI组件和逻辑控制标签,使得开发者可以更加专注于业务逻辑而不是繁琐的...
在Web开发中,富文本编辑器是一个不可或缺的组件,它允许用户以类似Word的方式编辑内容。TinyMCE是一个功能强大的开源富文本编辑器,而Vue.js则是一个流行的前端框架。将两者结合,可以创建一个高效且易于维护的前端...
`<s:generator>` - 生成器标签 - 用于生成动态内容,如迭代器中的分隔符。 #### 19. `<s:head>` - 头部标签 - 用于包含页面头部信息,如样式表和脚本引用。 #### 20. `<s:hidden>` - 隐藏字段标签 - 创建隐藏...
在Web开发过程中,文本编辑区域textarea是一个常用的表单元素,用以收集用户的多行文本输入。然而,传统的textarea高度是固定的,若用户输入的文本超出了预设的高度,就必须通过滚动条才能查看到全部内容。为了提升...
- **`**:生成迭代器。可以自定义迭代逻辑,如过滤、转换等。 - **`<ww:append/>`**:追加操作。可用于动态构建字符串或集合。 - **`<ww:subset/>`**:子集提取。从集合中选取一部分元素。 - **`<ww:merge/>`**:...