富文本編輯器TinyMCE介紹及使用


原文:https://www.jianshu.com/p/0f7984649347

TinyMCE是一個輕量、簡潔、功能強大的編輯器。
公司之前使用過kindEditorwangEditor
kindEditor:功能強大,代碼簡潔,有常用的從txt和word復制、多圖上傳等功能,但是沒有格式刷,運營的妹子經常反饋生成多余的空行,並且插入h5的video標簽默認也會被過濾掉,項目到2016年便不再維護了。
wangEditor:輕量、簡潔、易用,但是功能有限,沒有多圖上傳、格式刷等功能。
鑒於此,便換上了TinyMCE,原因有三:

  • GitHub 上星星很多,一直在維護
  • 從word粘貼和微信公眾上復制過來的文章基本能保持原格式
  • 插件豐富,官網提供了很多實用的插件,如多圖上傳,首行縮進,字數限制等,還可以自定義插件,方便拓展

     

     

具體的使用中文網站已經講得很詳細啦。http://tinymce.ax-z.cn/quick-start.php
第1步:引入TinyMCE腳本
首先在官網下載自己需要的版本后,在<head>中插入如下這行代碼,將tinymce.min.js源文件引入項目。

<script src="你的網站路徑/tinymce/tinymce.min.js"></script> 

第2步:將TinyMCE初始化為頁面的一部分
我們需要使用tinymce.init()來進行初始化。tinymce.init()內的初始化對象包含眾多參數,但都是可省略的,唯一必須的參數就是selector(允許通過css選擇器指定TinyMCE要綁定的內容容器,傳統模式需指定textarea,內聯或沉浸模式可指定div或其它塊元素,推薦div)
在下面這個例子中,我們創建一個TinyMCE實例初始化,來取代<textarea id='mytextarea'>

<!DOCTYPE html> <html> <head> <script src='tinymce.min.js'></script> <script> tinymce.init({ selector: '#mytextarea' }); </script> </head> <body> <h1>TinyMCE快速開始示例</h1> <form method="post"> <textarea id="mytextarea">Hello, World!</textarea> </form> </body> </html> 

第3步:通過正常表單POST保存內容
當form提交時,TinyMCE會將內容塞進textarea,你可以通過正常的post方法獲取到編輯器中的內容,行為與普通textarea完全一致。
注意:使用第三方UI框架或采用ajax提交可能不會主動觸發內容同步,需要自己執行同步或自己獲取內容
1.如果當前頁面只有一個編輯器:
獲取內容:tinyMCE.activeEditor.getContent()
設置內容:tinyMCE.activeEditor.setContent(“需要設置的編輯器內容”)

2.如果當前頁面有多個編輯器(下面的“[0]”表示第一個編輯器,以此類推):
獲取內容:tinyMCE.editors[0].getContent()
設置內容:tinyMCE.editors[0].setContent(“需要設置的編輯器內容”)

3.獲取不帶HTML標記的純文本內容:

var editBody = activeEditor.getBody();
activeEditor.selection.select(editBody);
var text = activeEditor.selection.getContent( { ‘format’ : ‘text’ } );

所以可以通過以下代碼將編輯器內容同步到textarea中:

var content=tinyMCE.activeEditor.getContent(); $("#mytextarea").val(content); 

或者在初始化參數中setup參數里加入事件監聽,讓他自動同步。

setup: function(editor){ editor.on('change',function(){ editor.save(); }); }, 

編輯器的回顯只需要給textarea賦值即可

 <textarea id="mytextarea">${content}</textarea> 

關於漢化:
1.在語言包(俗稱漢化包)下載頁,選擇可用的語言包下載到本地。
2.將語言包解壓,將js文件放入tinymce根目錄下的langs文件夾中(如不存在就自己新建一個),最后路徑形如:XXX/tinymce/langs/zh_CN.js
3.在TinyMCE實例配置參數中指定語言。

tinymce.init({ selector: '#mytextarea', language:'zh_CN',//注意大小寫 }); 

漢化后的界面如下:

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM