在线编辑器的实现原理(兼容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 相关文章推荐
学习ExtJS table布局
Oct 08 Javascript
jquery each的几种常用的使用方法示例
Jan 21 Javascript
jQuery Mobile弹出窗、弹出层知识汇总
Jan 05 Javascript
js遍历json的key和value的实例
Jan 22 Javascript
jquery网页加载进度条的实现
Jun 01 jQuery
JS库中的Particles.js在vue上的运用案例分析
Sep 13 Javascript
AngularJS使用ui-route实现多层嵌套路由的示例
Jan 10 Javascript
Vue 框架之动态绑定 css 样式实例分析
Nov 14 Javascript
vue-cli3 DllPlugin 提取公用库的方法
Apr 24 Javascript
小程序如何支持使用 async/await详解
Sep 12 Javascript
JavaScript简易计算器制作
Jan 17 Javascript
微信小程序自定义纯净模态框(弹出框)的实例代码
Mar 09 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
如何修改和添加Apache的默认站点目录
2013/07/05 PHP
Yii框架连接mongodb数据库的代码
2016/07/27 PHP
PHP简单实现模拟登陆功能示例
2017/09/15 PHP
在Laravel的Model层做数据缓存的实现
2019/09/26 PHP
提高代码性能技巧谈—以创建千行表格为例
2006/07/01 Javascript
JavaScript 学习技巧
2010/02/17 Javascript
jQuery语法总结和注意事项小结
2012/11/11 Javascript
使用jsonp实现跨域获取数据实例讲解
2016/12/25 Javascript
Angularjs的键盘事件的绑定
2017/07/27 Javascript
微信小程序云开发实现数据添加、查询和分页
2019/05/17 Javascript
小程序富文本提取图片可放大缩小
2020/05/26 Javascript
Jquery cookie插件实现原理代码解析
2020/08/04 jQuery
微信小程序基于高德地图API实现天气组件(动态效果)
2020/10/22 Javascript
举例详解Python中yield生成器的用法
2015/08/05 Python
详谈Python基础之内置函数和递归
2017/06/21 Python
python虚拟环境迁移方法
2019/01/03 Python
Python数据类型之列表和元组的方法实例详解
2019/07/08 Python
Python pandas库中的isnull()详解
2019/12/26 Python
Python自动重新加载模块详解(autoreload module)
2020/04/01 Python
基于python 取余问题(%)详解
2020/06/03 Python
python math模块的基本使用教程
2021/01/16 Python
彻底解决pip下载pytorch慢的问题方法
2021/03/01 Python
使用phonegap检测网络状态的方法
2017/03/30 HTML / CSS
HTML5 语音搜索(淘宝店语音搜素)
2013/01/03 HTML / CSS
俄罗斯电子产品、计算机和家用电器购物网站:OLDI
2019/10/27 全球购物
在使用非全零作为空指针内部表达的机器上, NULL是如何定义
2014/11/09 面试题
网络优化专员求职信
2014/05/04 职场文书
四风问题个人自查剖析材料思想汇报
2014/09/21 职场文书
法英专业大学生职业生涯规划书范文
2014/09/22 职场文书
2014幼儿园小班工作总结
2014/11/10 职场文书
安全先进个人材料
2014/12/29 职场文书
不同意离婚上诉状
2015/05/23 职场文书
小学见习报告
2015/06/23 职场文书
2016优秀员工先进事迹材料
2016/02/25 职场文书
python 如何做一个识别率百分百的OCR
2021/05/29 Python
Oracle删除归档日志及添加定时任务
2022/06/28 Oracle