在线编辑器的实现原理(兼容IE和FireFox)

 更新时间:2007年03月09日 00:00:00   作者:  
在线编辑器在我们日常的项目开发中非常有用(如新闻系统),它可以方便地实现文章的在线编辑,省掉了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实现的多种鼠标拖放效果

    这篇文章主要介绍了JavaScript实现的多种鼠标拖放效果,涉及JavaScript响应鼠标事件动态变换页面元素属性的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-11-11
  • 在线所见即所得HTML编辑器的实现原理浅析

    在线所见即所得HTML编辑器的实现原理浅析

    这篇文章主要介绍了在线所见即所得HTML编辑器的实现原理浅析,本文用初始化、打开编辑功能、获取编辑器的内容、增加样式设置、再进一步等步骤阐述在线编辑器的基本实现原理,需要的朋友可以参考下
    2015-04-04
  • 用js实现每隔一秒刷新时间的实例(含年月日时分秒)

    用js实现每隔一秒刷新时间的实例(含年月日时分秒)

    下面小编就为大家带来一篇用js实现每隔一秒刷新时间的实例(含年月日时分秒)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • javascript使用avalon绑定实现checkbox全选

    javascript使用avalon绑定实现checkbox全选

    checkbox全选应该是一个比较实用的前端技巧吧,很多时候我们都需要点击一个checkbox,然后将所有的复选框自动全部选中,一些CMS系统的后台中,使用本JS效果后,会大大增强了操作体验,那么究竟是如何实现这一功能的呢?
    2015-05-05
  • 开启Javascript中apply、call、bind的用法之旅模式

    开启Javascript中apply、call、bind的用法之旅模式

    在Javascript中,Function是一种对象。Function对象中的this指向决定于函数被调用的方式,使用apply,call 与 bind 均可以改变函数对象中this的指向。
    2015-10-10
  • JS使用tofixed与round处理数据四舍五入的区别

    JS使用tofixed与round处理数据四舍五入的区别

    js中一般使用tofixed与round处理数据四舍五入,那么tofixed与round有什么区别呢?下面小编给大家分享JS使用tofixed与round处理数据四舍五入的区别,需要的朋友参考下吧
    2017-10-10
  • 怎么理解wx.navigateTo的events参数使用详情

    怎么理解wx.navigateTo的events参数使用详情

    这篇文章主要介绍了怎么理解wx.navigateTo的events参数使用详情,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • 详解Javascript中document.execCommand()的用法以及指令参数列表

    详解Javascript中document.execCommand()的用法以及指令参数列表

    execCommand方法是执行一个对当前文档,当前选择或者给出范围的命令。在HTML5中,execCommand可以通过JavaScript代码来调用,使得开发者可以在网页中实现一些复杂的文本操作。在HTML编辑器中这个命令用得很多,酷炫的强大功能。
    2023-07-07
  • js实现的简洁网页滑动tab菜单效果代码

    js实现的简洁网页滑动tab菜单效果代码

    这篇文章主要介绍了js实现的简洁网页滑动tab菜单效果代码,可实现简单的鼠标滑过tab标签切换的功能,非常简单实用,需要的朋友可以参考下
    2015-08-08
  • 多种方法实现load加载完成后把图片一次性显示出来

    多种方法实现load加载完成后把图片一次性显示出来

    如何一个load 加载完成后把图片一次性显示出来,下面有个不错的方法,希望对大家有所帮助
    2014-02-02

最新评论