在线编辑器的实现原理(兼容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 相关文章推荐
记录几个javascript有关的小细节
Apr 02 Javascript
javascript与CSS复习(二)
Jun 29 Javascript
JavaScript定义变量和变量优先级问题探讨
Oct 11 Javascript
jQuery大于号(&gt;)选择器的作用解释
Jan 13 Javascript
JavaScript给url网址进行encode编码的方法
Mar 18 Javascript
javascript RegExp 使用说明
May 21 Javascript
AngularJS HTML DOM详解及示例代码
Aug 17 Javascript
Vue.js实现价格计算器功能
Mar 30 Javascript
完美解决mui框架off-canvas侧滑超出部分隐藏无法滚动的问题
Jan 25 Javascript
React SSR样式及SEO的实践
Oct 22 Javascript
Vue动态修改网页标题的方法及遇到问题
Jun 09 Javascript
使用Bootstrap做一个朝代历史表
Dec 10 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
从MySQL数据库表中取出随机数据的代码
2007/09/05 PHP
PHP stristr() 函数(不区分大小写的字符串查找)
2010/06/03 PHP
simplehtmldom Doc api帮助文档
2012/03/26 PHP
php获取URL中带#号等特殊符号参数的解决方法
2014/09/02 PHP
浅析php原型模式
2014/11/25 PHP
PHP翻页跳转功能实现方法
2020/11/30 PHP
PHP call_user_func和call_user_func_array函数的简单理解与应用分析
2019/11/25 PHP
ext combox 下拉框不出现自动提示,自动选中的解决方法
2010/02/24 Javascript
JQuery操作表格(隔行着色,高亮显示,筛选数据)
2012/02/23 Javascript
jquery中$(#form :input)与$(#form input)的区别
2014/08/18 Javascript
jQuery中on()方法用法实例详解
2015/02/06 Javascript
全面解析Bootstrap图片轮播效果
2015/12/03 Javascript
jQuery基础的工厂函数以及定时器的经典实例分析
2016/05/20 Javascript
vue之nextTick全面解析
2017/05/17 Javascript
在Vue中如何使用Cookie操作实例
2017/07/27 Javascript
vue2手机APP项目添加开屏广告或者闪屏广告
2017/11/28 Javascript
vue-cli 首屏加载优化问题
2018/11/06 Javascript
在Uni中使用Vue的EventBus总线机制操作
2020/07/31 Javascript
DWR内存兼容及无法调用问题解决方案
2020/10/16 Javascript
[03:58]2014DOTA2国际邀请赛 龙宝赛后解密DK获胜之道
2014/07/14 DOTA
Django静态资源URL STATIC_ROOT的配置方法
2014/11/08 Python
用Python编写生成树状结构的文件目录的脚本的教程
2015/05/04 Python
利用Python小工具实现3秒钟将视频转换为音频
2019/10/29 Python
使用python和pygame制作挡板弹球游戏
2019/12/03 Python
django实现模型字段动态choice的操作
2020/04/01 Python
html5使用window.postMessage进行跨域实现数据交互的一次实战
2021/02/24 HTML / CSS
Orlebar Brown官网:设计师泳裤和泳装
2020/12/08 全球购物
中学门卫岗位职责
2013/12/26 职场文书
女子职高个人自荐书
2014/02/01 职场文书
讲文明树新风公益广告宣传方案
2014/02/25 职场文书
义诊活动通知
2015/04/24 职场文书
消夏晚会主持词
2015/06/30 职场文书
python入门之算法学习
2021/04/22 Python
如何用PHP实现分布算法之一致性哈希算法
2021/05/26 PHP
Python爬虫基础初探selenium
2021/05/31 Python
详细介绍Next.js脚手架完整搭建封装
2022/04/26 Javascript