先看看效果:
Hallo.js是一個簡單的富文本Web編輯器,基于jQuery UI并且利用HTML5的contentEditable實現所見即所得。其目標并不是取代當今非常流行的編輯器,如 TinyMCE 或 Aloha Editor,而是給開發者提供一種更簡單、更愉快的用戶編輯體驗。
Hallo.js是由Henri Bergius為IKS項目開發的一款免費軟件,使用CoffeeScript開發,遵循MIT許可協議,托管在GitHub上。
使用方法
1、你需要將jQuery、jQuery UI和Rangy庫引入到你的項目中:
<script src="http://www.gimoo.net/t/1903/js/jquery.min.js"></script> <script src="http://www.gimoo.net/t/1903/js/jquery-ui.min.js"></script> <script src="http://www.gimoo.net/t/1903/js/rangy-core.js"></script>
編輯器工具欄使用jQuery UI的主題,因此你可能還想自定義一個主題,適合你的需要。工具欄圖標字體基于Font Awesome。風格的工具欄出現在演示中,你也會想添加一些CSS(如背景和邊框)的類hallotoolbar。
<link rel="stylesheet" > <link rel="stylesheet" >
引入Hallo.js
<script src="http://www.gimoo.net/t/1903/hallo.js"></script>
調用插件是非常簡單的
jQuery('p').hallo();
你也可以關閉標簽的編輯功能
jQuery('p').hallo({editable: false});
Hallo自己只能使選擇的DOM元素可編輯和不提供任何格式的工具。格式是通過加載插件初始化Hallo。即使簡單的事情,如粗體和斜體的插件:
jQuery('.editable').hallo({ plugins: { 'halloformat': {} } });
這個例子可以使簡單的格式的插件,提供如粗體和斜體的功能。你可以有很多好的插件為你想,如果有必要通過他們的選擇。
Hallo有更多的選項設置當實例化。請參閱文檔hallo.coffee文件。
事件方法
Hallo有一些事件,有助于整合和調用。你可以使用jQuery bind訂閱它們:
halloenabled: Triggered when an editable is enabled (editable set to true)hallodisabled: Triggered when an editable is disabled (editable set to false)
hallomodified: Triggered whenever user has changed the contents being edited. Event data key content contains the HTML
halloactivated: Triggered when user activates an editable area (usually by clicking it)
hallodeactivated: Triggered when user deactivates an editable area
插件
halloformat ? Adds Bold, Italic, StrikeThrough and Underline support to the toolbar. (Enable/Disable with options: “formattings”: {“bold”: true, “italic”: true, “strikethrough”: true, “underline”: false})halloheadings ? Adds support for H1, H2, H3. You can pass a headings option key to specify what is going to be displayed (e.g. “formatBlocks”:[“p”, “h2″,”h3”])
hallojustify ? Adds align left, center, right support
hallolists ? Adds support for ordered and unordered lists (Pick with options: “lists”: {“ordered”: false, “unordered”: true})
halloreundo ? Adds support for undo and redo
hallolink ? Adds support to add links to a selection (currently not working)
halloimage ? Image uploading, searching, suggestions
halloblacklist ? Filtering unwanted tags from the content
編寫一個插件
Hallo插件編寫正則jQuery UI插件。
當Hallo加載也加載單元所有啟用的插件,并通過他們一些額外的選項:
editable: The main Hallo widget instance uuid: unique identifier of the Hallo instance, can be used for element IDs一個簡單的插件看起來像以下的:
# Formatting plugin for Hallo # (c) 2011 Henri Bergius, IKS Consortium # Hallo may be freely distributed under the MIT license ((jQuery) -> jQuery.widget "IKS.halloformat", boldElement: null options: uuid: '' editable: null _create: -> # Add any actions you want to run on plugin initialization # here populateToolbar: (toolbar) -> # Create an element for holding the button @boldElement = jQuery '<span></span>' # Use Hallo Button @boldElement.hallobutton uuid: @options.uuid editable: @options.editable label: 'Bold' # Icons come from Font Awesome icon: 'icon-bold' # Commands are used for execCommand and queryCommandState command: 'bold' # Append the button to toolbar toolbar.append @boldElement cleanupContentClone: (element) -> # Perform content clean-ups before HTML is sent out )(jQuery)
以上就是關于Hallo.js富文本編輯器的詳細介紹,希望對大家的學習有所幫助。