在线编辑器的实现原理(兼容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 ajax 同步异步的执行示例代码
Jun 23 Javascript
JS 操作Array数组的方法及属性实例解析
Jan 08 Javascript
JavaScript控制table某列不显示的方法
Mar 16 Javascript
基于HTML5上使用iScroll实现下拉刷新,上拉加载更多
May 21 Javascript
javascript 数组去重复(在线去重工具)
Dec 17 Javascript
jQuery实现移动端Tab选项卡效果
Mar 15 Javascript
详解vue填坑之解决部分浏览器不支持pushState方法
Jul 12 Javascript
JS实现普通轮播图特效
Jan 01 Javascript
解决VUE mounted 钩子函数执行时 img 未加载导致页面布局的问题
Jul 27 Javascript
jQuery中event.target和this的区别详解
Aug 13 jQuery
js实现购物车商品数量加减
Sep 21 Javascript
openlayers实现地图弹窗
Sep 25 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写的采集程序
2007/03/16 PHP
Symfony2使用Doctrine进行数据库查询方法实例总结
2016/03/18 PHP
Yii2 输出xml格式数据的方法
2016/05/03 PHP
PHP的mysqli_stmt_init()函数讲解
2019/01/24 PHP
JavaScript 未结束的字符串常量常见解决方法
2010/01/24 Javascript
nodejs文件操作模块FS(File System)常用函数简明总结
2014/06/05 NodeJs
Bootstrap基本样式学习笔记之表单(3)
2016/12/07 Javascript
AngularJS页面带参跳转及参数解析操作示例
2017/06/28 Javascript
解决vue打包之后静态资源图片失效的问题
2018/02/21 Javascript
JQuery选中select组件被选中的值方法
2018/03/08 jQuery
layui获取选中行数据的实例讲解
2018/08/19 Javascript
详解适配器在JavaScript中的体现
2018/09/28 Javascript
vue 使用外部JS与调用原生API操作示例
2019/12/02 Javascript
解决pycharm双击但是无法打开的情况
2020/10/31 Javascript
如何使用 vue-cli 创建模板项目
2020/11/19 Vue.js
Python Queue模块详细介绍及实例
2016/12/27 Python
如何用Python破解wifi密码过程详解
2019/07/12 Python
浅析python redis的连接及相关操作
2019/11/07 Python
python 实现多线程下载m3u8格式视频并使用fmmpeg合并
2019/11/15 Python
Python正则表达式学习小例子
2020/03/03 Python
PyQt5.6+pycharm配置以及pyinstaller生成exe(小白教程)
2020/06/02 Python
python怎么对数字进行过滤
2020/07/05 Python
Python根据字符串调用函数过程解析
2020/11/05 Python
HTML5给汉字加拼音收起展开组件的实现代码
2020/04/08 HTML / CSS
互动出版网:专业书籍
2017/03/21 全球购物
New Balance美国官网:运动鞋和健身服装
2017/04/11 全球购物
美国现代家具购物网站:LexMod
2019/01/09 全球购物
vue+django实现下载文件的示例
2021/03/24 Vue.js
成人毕业生自我鉴定
2013/10/18 职场文书
军训 自我鉴定
2014/02/03 职场文书
小学语文教研活动总结
2014/07/01 职场文书
小学关爱留守儿童活动方案
2014/08/25 职场文书
供应商食品安全承诺书
2015/04/29 职场文书
六年级上册《闻官军收河南河北》的教学设计
2019/11/15 职场文书
golang 定时任务方面time.Sleep和time.Tick的优劣对比分析
2021/05/05 Golang
js之ajax文件上传
2021/05/13 Javascript