首頁  >  文章  >  web前端  >  Hallo.js基於jQuery UI所見即所得的Web編輯器_jquery

Hallo.js基於jQuery UI所見即所得的Web編輯器_jquery

WBOY
WBOY原創
2016-05-16 15:18:031880瀏覽

先看看效果:

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="js/jquery.min.js"></script>
<script src="js/jquery-ui.min.js"></script>
<script src="js/rangy-core.js"></script>

編輯器工具列使用jQuery UI的主題,因此你可能還想自訂主題,適合你的需求。工具列圖示字體基於Font Awesome。風格的工具列出現在示範中,你也會想要加入一些CSS(如背景和邊框)的類別hallotoolbar。

<link rel="stylesheet" href="/path/to/your/jquery-ui.css">
<link rel="stylesheet" href="/path/to/your/font-awesome.css">

引入Hallo.js

<script src="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, “strikerough ”: 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”:[“plocks”:[“plocks”:[“plocks. ”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富文本編輯器的詳細介紹,希望對大家的學習有所幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn