在线编辑器的实现原理(兼容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 相关文章推荐
读jQuery之十一 添加事件核心方法
Jul 31 Javascript
GRID拖拽行的实例代码
Jul 18 Javascript
js中点击空白区域时文本框与隐藏层的显示与影藏问题
Aug 26 Javascript
javascript阻止scroll事件多次执行的思路及实现
Nov 08 Javascript
JavaScript学习笔记之定时器
Jan 22 Javascript
如何判断Javascript对象是否存在的简单实例
May 18 Javascript
JavaScript用构造函数如何获取变量的类型名
Dec 23 Javascript
微信小程序小组件 基于Canvas实现直播点赞气泡效果
May 29 Javascript
Angular.js前台传list数组由后台spring MVC接收数组示例代码
Jul 31 Javascript
vue的基本用法与常见指令
Aug 15 Javascript
性能优化篇之Webpack构建速度优化的建议
Apr 03 Javascript
VUE单页面切换动画代码(全网最好的切换效果)
Oct 31 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数据饼图效果实现代码
2011/11/23 PHP
php中通过curl模拟登陆discuz论坛的实现代码
2012/02/16 PHP
PHP重定向与伪静态区别
2017/02/19 PHP
php从数据库中获取数据用ajax传送到前台的方法
2018/08/20 PHP
javascript 计算两个整数的百分比值
2009/12/26 Javascript
Javascript学习笔记8 用JSON做原型
2010/01/11 Javascript
JavaScript基础语法让人疑惑的地方小结
2012/05/23 Javascript
javascript不可用的问题探究
2013/10/01 Javascript
Jquery ajax执行顺序 返回自定义错误信息(实例讲解)
2013/11/06 Javascript
js实现文件上传表单域美化特效
2015/11/02 Javascript
基于JS2Image实现圣诞树代码
2015/12/24 Javascript
JS获取一个未知DIV高度的方法
2016/08/09 Javascript
js图片切换具体实现代码
2016/10/13 Javascript
ionic实现底部分享功能
2017/05/11 Javascript
实现Vue的markdown文档可以在线运行的方法示例
2018/12/11 Javascript
Node.js console控制台简单用法分析
2019/01/04 Javascript
element-ui 中使用upload多文件上传只请求一次接口
2019/07/19 Javascript
IE11下处理Promise及Vue的单项数据流问题
2019/07/24 Javascript
详解JavaScript 作用域
2020/07/14 Javascript
Vue——前端生成二维码的示例
2020/12/19 Vue.js
[56:47]Ti4 循环赛第三日 iG vs Liquid
2014/07/12 DOTA
天翼开放平台免费短信验证码接口使用实例
2013/12/18 Python
python3+PyQt5+Qt Designer实现堆叠窗口部件
2018/04/20 Python
django有外键关系的两张表如何相互查找
2020/02/10 Python
Python找出列表中出现次数最多的元素三种方式
2020/02/24 Python
Python爬虫基于lxml解决数据编码乱码问题
2020/07/31 Python
Pycharm如何自动生成头文件注释
2020/11/14 Python
python 使用tkinter+you-get实现视频下载器
2020/11/17 Python
Pytorch模型迁移和迁移学习,导入部分模型参数的操作
2021/03/03 Python
入党转预备思想汇报
2014/01/07 职场文书
建议书怎么写
2014/03/12 职场文书
幼儿园教研活动总结
2014/04/30 职场文书
讲解员培训方案
2014/05/04 职场文书
优秀高中学生评语
2014/12/30 职场文书
2016年4月份红领巾广播稿
2015/12/21 职场文书
MySQL 8.0 之不可见列的基本操作
2021/05/20 MySQL