在线编辑器的实现原理(兼容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功能实现的RSS Reader 代码
Sep 03 Javascript
js实现的仿新浪微博完美的时间组件升级版
Dec 20 Javascript
js Array对象的扩展函数代码
Apr 24 Javascript
JavaScript基础知识学习笔记
Dec 02 Javascript
node.js中的fs.lchown方法使用说明
Dec 16 Javascript
javascript中JSON对象与JSON字符串相互转换实例
Jul 11 Javascript
jQuery平滑旋转幻灯片特效代码分享
Sep 07 Javascript
js实现的动画导航菜单效果代码
Sep 10 Javascript
AngularJs concepts详解及示例代码
Sep 01 Javascript
Vue keep-alive实践总结(推荐)
Aug 31 Javascript
详解js静态检查工具eslint配置文件
Nov 23 Javascript
如何使用50行javaScript代码实现简单版的call,apply,bind
Aug 14 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
DOTA2【瓜皮时刻】Vol.91 RTZ山史最惨“矿难”
2021/03/05 DOTA
PHP 创建文件(文件夹)以及目录操作代码
2010/03/04 PHP
PHP 金额数字转换成英文
2010/05/06 PHP
php实现的css文件背景图片下载器代码
2014/11/11 PHP
PHP十六进制颜色随机生成器功能示例
2017/07/24 PHP
PHP简单实现二维数组赋值与遍历功能示例
2017/10/19 PHP
基于JS实现的倒计时程序实例
2015/07/24 Javascript
JavaScript数组各种常见用法实例分析
2015/08/04 Javascript
Javascript 对cookie操作详解及实例
2016/12/29 Javascript
RequireJS 依赖关系的实例(推荐)
2017/01/21 Javascript
JavaScript递归算法生成树形菜单
2017/08/15 Javascript
vue动态路由实现多级嵌套面包屑的思路与方法
2017/08/16 Javascript
Vue 引入AMap高德地图的实现代码
2019/04/29 Javascript
Vue+Element-UI实现上传图片并压缩
2019/11/26 Javascript
解决vant的Toast组件时提示not defined的问题
2020/11/11 Javascript
[03:43]2014DOTA2西雅图国际邀请赛 newbee战队巡礼
2014/07/07 DOTA
python批量修改文件名的实现代码
2014/09/01 Python
Python打印scrapy蜘蛛抓取树结构的方法
2015/04/08 Python
python动态参数用法实例分析
2015/05/25 Python
目前最全的python的就业方向
2018/06/05 Python
Python实现动态添加属性和方法操作示例
2018/07/25 Python
python使用matplotlib画饼状图
2018/09/25 Python
一行python实现树形结构的方法
2019/08/09 Python
在Python IDLE 下调用anaconda中的库教程
2020/03/09 Python
Django中template for如何使用方法
2021/01/31 Python
美国折扣网站:jClub
2017/08/07 全球购物
Java Servlet的主要功能和作用是什么
2014/02/14 面试题
毕业生应聘幼儿园的自荐信
2013/11/20 职场文书
公务员培的训心得体会
2014/09/01 职场文书
学校党委副书记个人对照检查材料思想汇报
2014/09/28 职场文书
2014年卫生工作总结
2014/11/27 职场文书
纪检监察立案决定书
2015/06/24 职场文书
新郎父母婚礼致辞
2015/07/27 职场文书
SQLServer 日期函数大全(小结)
2021/04/08 SQL Server
Python+Selenium实现抖音、快手、B站、小红书、微视、百度好看视频、西瓜视频、微信视频号、搜狐视频、一点号、大风号、趣头条等短视频自动发布
2022/04/13 Python
Go Grpc Gateway兼容HTTP协议文档自动生成网关
2022/06/16 Golang