Плагин jQuery Editor - execommand не вызывается - PullRequest
0 голосов
/ 20 февраля 2012

Я играю с плагином jHTMLArea jQuery (http://jhtmlarea.codeplex.com/). Он создает хороший простой редактор WYSIWYG с использованием встроенного iframe. Я хочу избавиться от iframe и использовать вместо него div ContentEditable.

Theпроблема в том, что я могу заставить его запустить функцию execcommand, чтобы изменения в форматировании были применены к редактору.

Посмотрите на http://jsfiddle.net/mwillmott/neXkk/, чтобы увидеть мою реализацию.

Любая помощьбыл бы оценен!

1 Ответ

1 голос
/ 21 февраля 2012

Если вы попробуете поиграться в Firefox с помощью Firebug, одна часть ответа отобразится в консоли.Проблема в том, что для document.execCommand() требуются три параметра:

document.execCommand("Bold", false, null);

Второй является старым, специфичным для IE, и почти всегда может быть false.Последнее представляет собой значение, связанное с командой, которое в случае «Bold» может быть нулевым, поскольку команда bold не принимает значения.

Другая, более серьезная проблема заключается в том, что выделение уничтожается при нажатии на панель инструментов.кнопок.Вы должны предотвратить это, используя событие mousedown вместо click, или лучше, не позволяя кнопкам захватывать фокус.См., Например, этот ответ .

Наконец, я думаю, что отсутствует свойство с именем editor, которое должно быть ссылкой на документ, содержащий редактируемое содержимое.

Я добавил исправления для них в вашей демонстрации: http://jsfiddle.net/neXkk/2/. Протестировано только в Firefox, вам может понадобиться больше настроек для IE, в частности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...