在线编辑器的实现原理(兼容IE和FireFox)


Posted in Javascript onMarch 09, 2007

在线编辑器在我们日常的项目开发中非常有用(如新闻系统),它可以方便地实现文章的在线编辑,省掉了FrontPage等工具。那么是怎样实现浏览器在线编辑功能的呢?  首先需要IE的支持,在IE5.5以后就有一个编辑状态. 就是利用这个编辑状态,然后用javascript来控制在线编辑的。 
     首先要有一个编辑框,这个编辑框其实就是一个可编辑状态的网页, 我们用iframe来建立编辑框。
     <IFRAME id=“HtmlEdit” style="WIDTH: 100%; HEIGHT: 296px" marginWidth=“0” marginHeight=“0”></IFRAME> 
     并且在加上javascript代码来指定HtmlEdit有编辑功能(下面提供完整的原代码):

<script language="javascript"> 
     var editor; 
     editor = document.getElementById("HtmlEdit").contentWindow;      //只需键入以下设定,iframe立刻变成编辑器。 
     editor.document.designMode = 'On'; 
     editor.document.contentEditable = true; 
     //但是IE与FireFox有点不同,为了兼容FireFox,所以必须创建一个新的document。 
     editor.document.open(); 
     editor.document.writeln('<html><body></body></html>'); 
     editor.document.close(); 
     //字体特效 - 加粗方法一  
     function addBold() 
     { 
     editor.focus(); 
     //所有字体特效只是使用execComman()就能完成。 
     editor.document.execCommand("Bold", false, null); 
     } 
     //字体特效 - 加粗方法二  
     function addBold() 
     { 
     editor.focus(); 
     //获得选取的焦点 
     var sel = editor.document.selection.createRange(); 
     insertHTML("<b>"+sel.text+"</b>"); 
     } 
     function insertHTML(html) 
     { 
         if (editor.document.selection.type.toLowerCase() != "none") 
         { 
         editor.document.selection.clear() ; 
         } 
         editor.document.selection.createRange().pasteHTML(html) ;  
     } 
  </script>
Javascript 相关文章推荐
一个简单的弹性返回顶部JS代码实现介绍
Jun 09 Javascript
同域jQuery(跨)iframe操作DOM(示例代码)
Dec 13 Javascript
通用javascript代码判断版本号是否在版本范围之间
Nov 29 Javascript
Angularjs过滤器使用详解
May 25 Javascript
深入理解JS函数的参数(arguments)的使用
May 28 Javascript
jQuery获取同级元素的简单代码
Jul 09 Javascript
功能强大的Bootstrap效果展示(二)
Aug 03 Javascript
vue.js实现条件渲染的实例代码
Jun 22 Javascript
用Webpack构建Vue项目的实践
Nov 07 Javascript
jQuery轮播图实例详解
Aug 15 jQuery
vue仿ios列表左划删除
Sep 26 Javascript
微信小程序开发数据缓存基础知识辨析及运用实例详解
Nov 06 Javascript
超级兔子让浮动层消失的前因后果
Mar 09 #Javascript
再谈IE中Flash控件的自动激活 ObjectWrap
Mar 09 #Javascript
javascript的对话框详解与参数
Mar 08 #Javascript
打开超链需要“确认”对话框的方法
Mar 08 #Javascript
javascript学习随笔(使用window和frame)的技巧
Mar 08 #Javascript
关于使用runtimeStyle属性问题讨论文章
Mar 08 #Javascript
用js判断用户浏览器是否是XP SP2的IE6
Mar 08 #Javascript
You might like
PHP var_dump遍历对象属性的函数与应用代码
2010/06/04 PHP
CodeIgniter与PHP5.6的兼容问题
2015/07/16 PHP
微信公众号开发之语音消息识别php代码
2016/08/08 PHP
PHP+Ajax异步带进度条上传文件实例
2016/11/01 PHP
PHP AjaxForm提交图片上传并显示图片源码
2016/11/29 PHP
PHP四种排序算法实现及效率分析【冒泡排序,插入排序,选择排序和快速排序】
2018/04/27 PHP
javascript 当前日期转化为中文的实现代码
2010/05/13 Javascript
js Html结构转字符串形式显示代码
2011/11/15 Javascript
JAVASCRIPT模式窗口中下载文件无法接收iframe的流
2013/10/11 Javascript
js根据日期判断星座的示例代码
2014/01/23 Javascript
推荐5 个常用的JavaScript调试技巧
2015/01/08 Javascript
通过实例理解javascript中没有函数重载的概念
2015/06/03 Javascript
关于JS中prototype的理解
2015/09/07 Javascript
jQuery 跨域访问解决原理案例详解
2016/07/09 Javascript
浅谈JavaScript的自动垃圾收集机制
2016/12/15 Javascript
jQuery插件FusionCharts实现的3D帕累托图效果示例【附demo源码】
2017/03/25 jQuery
vue指令只能输入正数并且只能输入一个小数点的方法
2018/06/08 Javascript
在小程序中使用canvas的方法示例
2018/09/17 Javascript
webpack4实现不同的导出类型
2019/04/09 Javascript
在vue和element-ui的table中实现分页复选功能
2019/12/04 Javascript
简单了解three.js 着色器材质
2020/08/03 Javascript
vue 保留两位小数 不能直接用toFixed(2) 的解决
2020/08/07 Javascript
vue v-model的用法解析
2020/10/19 Javascript
[16:56]heroes英雄教学 司夜刺客
2014/09/18 DOTA
python3模拟百度登录并实现百度贴吧签到示例分享(百度贴吧自动签到)
2014/02/24 Python
基于python yield机制的异步操作同步化编程模型
2016/03/18 Python
python3+PyQt5使用数据库窗口视图
2018/04/24 Python
Python二维码生成识别实例详解
2019/07/16 Python
python路径的写法及目录的获取方式
2019/12/26 Python
为什么说python更适合树莓派编程
2020/07/20 Python
俄罗斯名牌服装网上商店:UNIQUE FABRIC
2019/07/25 全球购物
就业自荐书
2013/12/05 职场文书
高考诚信考试承诺书
2015/04/29 职场文书
三八节活动简报
2015/07/20 职场文书
创业计划书之儿童理发店
2019/09/27 职场文书
【HBU】数据库第四周 单表查询
2021/04/05 SQL Server