富文本编辑器开发原理

Posted 牧云人生

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了富文本编辑器开发原理相关的知识,希望对你有一定的参考价值。

富文本编辑器的开发主要使用到东西如下:
1、iframe
2、将iframe的designMode设置为‘on‘
3、将iframe的contentEditable设置为true
4、获取iframe对象的contentDocument(注意兼容性)
5、使用contentDocument对象的write方法写入一个html文档,为解决兼容性问题需要再使用write方法之前使用open方法、之后使用close方法。
6、获取文档内容使用doc.body.innerHTML
7、实现加粗之类操作的方式是调用document.execCommand方法,具体参数参看https://developer.mozilla.org/zh-CN/docs/Web/API/Document/execCommand
 
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
<script language="javascript" type="text/javascript">

  //初始化编辑器

  function init() {

    var ifr = document.getElementById("editor");

    var doc = ifr.contentDocument || ifr.contentWindow.document; // W3C || IE

    doc.designMode = "on";

    doc.contentEditable = true;

    doc.write(‘<html><head><style>body{margin:3px;word - wrap:break-word;word -break:break-all;}</style ></head><body>helloworld!</body></html>‘);

    alert(doc.body.innerHTML);
  }


  //设置选定的文本为粗体/正常

  function setBold() {
    var win = document.getElementById("editor").contentWindow;
    win.document.execCommand("Bold", false, null);
    win.focus();
  }

</script>

<p>
    <input type="button" id="bBtn" value="B" style="font-weight:bold" onclick="setBold();"/>
</p>

<p>
    <iframe id="editor" width="600px" height="400px" style="border:solid 1px;"></iframe>
</p>

<script type="text/javascript">
  init();
</script>
</body>
</html>

  参考博客:http://blog.csdn.net/yelbosh/article/details/7693236

以上是关于富文本编辑器开发原理的主要内容,如果未能解决你的问题,请参考以下文章

TERSUS画画一样开发软件 显示元件介绍-富文本显示及编辑元件

前端实现富文本的原理

轻量级富文本编辑器quill editor结合iview的使用

富文本编辑器怎么用

angularJS使用ocLazyLoad实现js延迟加载

TinyMCE(富文本编辑器)