NicEdit

NicEdit — это очень скромный WYSIWYG редактор, который со всеми расширениями весит 44 килобайта. Он основан на contenteditable свойстве, в отличие от, например, TinyMCE. Последний использует iframe, которые мне не сильно нравяться.

Но использование свойства contenteditable имеет некоторые проблемы с потдеркой в браузерах. С декстопными версиями всё хорошо. Если верить сайту caniuse.com, то всё работает в IE5.5+, FireFox 3.5+, Opera 9+, Chrome и Safari. Но с мобильными всё хуже. Можно даже сказать плохо, но кажется всё меняется. В IOS 5 всё нормально, а 4 версии еще нечего не работало (Сам проверял на Iphone 4). С Android всё хуже. В 2.х версиях тоже, нет поддержки contenteditable (проверил на Samsung Galaxy S, 2.3.3), но говорят, что в 3ей всё ОК. Opera Mini и Mobile не поддерживает (в Iphone на IOS4, точно).

Теперь приступим к использованию. Для этого качаем js-библиотеку и gif-иконки. Я использую полный скомпресированый набор. Весит он — 44КБ. Но если много, можете по убирать галочки возле ненужных элементов. Главное помнить, что если потом захотите добавить или забрать возможностей. то помните, что и gif-ку нужно поменять.

Теперь положим их в папку, и добавим туда свой html файл, в котором будем создавать наш редактор. В html файле пишем:

<html>
<head>
<script type="text/javascript" src="nicEdit.js"></script>
<script type="text/javascript">
	bkLib.onDomLoaded(function() { nicEditors.allTextAreas() });
</script>	
</head>
<body>
<textarea></textarea>
</body>
</html>

Тут все textarea поменяются на редакторы со всеми кнопками. Если же нужно поменять только для одного с textarea, например, с id=area, то:

new nicEditor({fullPanel : true}).panelInstance('area');

Если же нужно некоторые кнопки, то:

new nicEditor({buttonList : ['fontSize','bold','italic','underline','strikeThrough','subscript','superscript','html','image']}).panelInstance('area');

Вот список всех возможных кнопок:

  • ‘bold’
  • ‘italic’
  • ‘underline’
  • ‘left’
  • ‘center’
  • ‘right’
  • ‘justify’
  • ‘ol’
  • ‘ul’
  • ‘subscript’
  • ‘superscript’
  • ‘strikethrough’
  • ‘removeformat’
  • ‘indent’
  • ‘outdent’
  • ‘hr’
  • ‘image’
  • ‘upload’
  • ‘forecolor’
  • ‘bgcolor’
  • ‘link’
  • ‘unlink’
  • ‘fontSize’
  • ‘fontFamily’
  • ‘fontFormat’
  • ‘xhtml’ 

Теперь посмотрим, как NicEdit меняет html:

Как видите, наш textarea скрыли, а над ним появилось несколько div’ов. Верхний — это иконки, нижний — поле для редактирования. Тут важный момент. Если мы ходим работать с редактором, то нужно работать с div class=»nicEdit-main». Но если нужно отослать данные, то, например, в PHP считывать данные нужно так: $_POST['name от textarea'].

И под конец, как выглядит сам редактор:


Надеюсь вам станет полезен этот плагин. Со временем я собираюсь его перевести и дописать несколько кнопок.
UPDATE: Я перевел Nicedit на русский и украинский и выложил на GitHub.





Fork me on GitHub

4 thoughts on “NicEdit

  1. Добрый день! Спасибо за пост и перевод. Подскажите более точно, пожалуйста, как в РНР передать данные. У меня есть:

    ...

    ...

    • Вставлять код в комментарии нельзя в целях безопасности.
      При передаче, для моего примера нужно: $_POST['textareaExample']

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">

What is 9 + 2 ?
Please leave these two fields as-is: