在线编辑器的实现原理(兼容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页面刷新与弹出窗口问题的解决方法
Mar 02 Javascript
js实现图片点击左右轮播
Jul 08 Javascript
Hallo.js基于jQuery UI所见即所得的Web编辑器
Jan 26 Javascript
基于JavaScript实现文字超出部分隐藏
Feb 29 Javascript
jQuery EasyUI 入门必看
Jun 03 Javascript
详解js的六大数据类型
Dec 27 Javascript
webpack4 CSS Tree Shaking的使用
Sep 03 Javascript
JS实现可针对算术表达式求值的计算器功能示例
Sep 04 Javascript
浅谈React之状态(State)
Sep 19 Javascript
微信小程序实现获取小程序码和二维码java接口开发
Mar 29 Javascript
使用vue引入maptalks地图及聚合效果的实现
Aug 10 Javascript
js实现表格单列按字母排序
Aug 12 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判断当前用户已在别处登录的方法
2015/01/06 PHP
php使用glob函数遍历文件和目录详解
2016/09/23 PHP
如何判断php mysqli扩展类是否开启
2016/12/24 PHP
Node.js模拟浏览器文件上传示例
2014/03/26 Javascript
js使用setTimeout实现定时炸弹的方法
2015/04/10 Javascript
javascript实现数组内值索引随机化及创建随机数组的方法
2015/08/10 Javascript
Bootstrap实现翻页效果
2017/11/27 Javascript
使用JavaScript中的lodash编写双色球效果
2018/06/24 Javascript
Vue项目引发的「过滤器」使用教程
2019/03/12 Javascript
JS实现移动端点击按钮复制文本内容
2019/07/28 Javascript
uni-app 组件里面获取元素宽高的实现
2019/12/27 Javascript
JS实现普通轮播图特效
2020/01/01 Javascript
JS代码触发事件代码实例
2020/01/02 Javascript
Vue简单实现原理详解
2020/05/07 Javascript
python进程类subprocess的一些操作方法例子
2014/11/22 Python
Python实现国外赌场热门游戏Craps(双骰子)
2015/03/31 Python
Python常用算法学习基础教程
2017/04/13 Python
使用matplotlib画散点图的方法
2018/05/25 Python
Python读取Excel表格,并同时画折线图和柱状图的方法
2018/10/14 Python
值得收藏,Python 开发中的高级技巧
2018/11/23 Python
Django Rest framework认证组件详细用法
2019/07/25 Python
PyQt5基本控件使用详解:单选按钮、复选框、下拉框
2019/08/05 Python
python实现对图片进行旋转,放缩,裁剪的功能
2019/08/07 Python
pytorch使用指定GPU训练的实例
2019/08/19 Python
Python实现aes加密解密多种方法解析
2020/05/15 Python
浅谈matplotlib中FigureCanvasXAgg的用法
2020/06/16 Python
python实现磁盘日志清理的示例
2020/11/05 Python
K近邻法(KNN)相关知识总结以及如何用python实现
2021/01/28 Python
全面总结使用CSS实现水平垂直居中效果的方法
2016/03/10 HTML / CSS
奥地利时尚、美容、玩具和家居之家:Kastner & Öhler
2020/04/26 全球购物
C# Debug和Testing相关面试题
2015/10/25 面试题
《一个小村庄的故事》教学反思
2014/04/13 职场文书
学雷锋的心得体会
2014/09/04 职场文书
PHP 技巧 * SVG 保存为图片(分享图生成)
2021/04/02 PHP
详解Python小数据池和代码块缓存机制
2021/04/07 Python
win7配置本地ftp服务器的图文教程
2022/08/05 Servers