bootstrap3-wysiwyg是一款简单实用的基于Bootstrap3所见即所得的jQuery文本编辑器插件。该文本编辑器使用简单,支持多国语言,适用于需要简单文本编辑的场合。

使用方法

使用该文本编辑器插件需要引入jQuery、Bootstrap3相关文件以及bootstrap3-wysihtml5.min.css和bootstrap3-wysihtml5.all.min.js文件。

<link rel="stylesheet" type="text/css" href="bootstrap-3.3.5/css/bootstrap.min.css"></link>
<link rel="stylesheet" type="text/css" href="bootstrap-3.3.5/css/bootstrap-theme.min.css"></link>
<link rel="stylesheet" type="text/css" href="dist/bootstrap3-wysihtml5.min.css"></link>
<script src="js/jquery.min.js"></script>
<script src="bootstrap-3.3.5/js/bootstrap.min.js"></script>
<script src="dist/bootstrap3-wysihtml5.all.min.js"></script>               
              
HTML结构

你可以使用一个<textarea>元素来作为该文本编辑器的容器。

<textarea id="some-textarea" 
          placeholder="Enter text ..." 
          style="styles to copy to the iframe">
</textarea>         
              
初始化插件

在页面DOM元素初加载完毕之后可以通过wysihtml5()方法来初始化该文本编辑器插件。

$('#some-textarea').wysihtml5();            
              

配置参数

可以在初始化的时候在wysihtml5()中插入一个参数对象来配置文本编辑器。

$('#some-textarea').wysihtml5({someOption: 23, ...})                
              
按钮

要设置工具栏上的按钮可以使用下面的参数:

$('#some-textarea').wysihtml5({
  toolbar: {
    "font-styles": true, //Font styling, e.g. h1, h2, etc. Default true
    "emphasis": true, //Italics, bold, etc. Default true
    "lists": true, //(Un)ordered lists, e.g. Bullets, Numbers. Default true
    "html": false, //Button which allows you to edit the generated HTML. Default false
    "link": true, //Button to insert a link. Default true
    "image": true, //Button to insert an image. Default true,
    "color": false, //Button to change color of font  
    "blockquote": true, //Blockquote  
    "size": <buttonsize> //default: none, other options are xs, sm, lg
  }
});                
              
Font Awesome字体图标

要在工具栏中使用Font Awesome字体图标,可以如下配置:

toolbar: {
  "fa": true
}                
              
自定义模板

要自定义工具栏的按钮模板,可以参考这里

事件

Wysihtml5文本编辑器提供了一些可用的事件。事件的使用方法如下:

var editor = new wysihtml5.Editor("textarea-id");

// observe
function onChange() { alert("The content of the editor has changed"); };
function onLoad() { alert("Go!"); };
editor.on("change", onChange);
editor.on("load", onLoad);

// unobserve
editor.stopObserving("onChange", onChange);
editor.stopObserving("onLoad", onLoad);                
              

或者:

$('#some-textarea').wysihtml5({
    "events": {
        "load": function() { 
            console.log("Loaded!");
        },
        "blur": function() { 
            console.log("Blured");
        }
    }
});                
              

可用的事件有:

  • load:文本编辑器完全加载之后触发。
  • beforeload:仅用于内部使用。
  • focus:当文本编辑器获取焦点的时候触发。
  • focus:composer:当富文本视图获取焦点时触发。
  • focus:textarea:当source view获取焦点时触发。
  • blur:当文本编辑器失去焦点的时候触发。
  • blur:composer:当富文本视图失去焦点时触发。
  • blur:textarea:当source view失去焦点时触发。
  • change:当值改变时触发。
  • change:composer:当富文本视图中的值改变时触发。
  • change:textarea:当source view的值改变时触发。
  • paste:当用户粘贴或拖拽时触发。
  • paste:composer:当用户粘贴或拖拽到富文本区域时触发。
  • paste:textarea:当用户粘贴或拖拽到source view区域时触发。
  • newword:composer:当用户在富文本区域输入新的单词时触发。
  • destroy:composer:当富文本区域被移除时触发。
  • change_view:当在源文件视图和富文本视图之间切换时触发。
  • show:dialog:当工具栏显示时触发。
  • save:dialog:当工具栏对话框被点击的时候触发。
  • cancel:dialog:当工具栏对话框被取消的时候触发。
  • undo:composer:当用户调用undo操作时触发。
  • redo:composer:当用户调用redo操作时触发。
  • beforecommand:composer:当用户通过富文本命令来格式化前触发。
  • aftercommand:composer:当用户通过富文本命令来格式化后触发。

关于该文本编辑器插件更多的信息可以参考:https://github.com/bootstrap-wysiwyg/bootstrap3-wysiwyg