jHtmlArea обработка событий нажатия клавиш - PullRequest
5 голосов
/ 10 февраля 2010

В настоящее время я разрабатываю инструмент преобразования текста в символы (некоммерческий), и у меня возникла эта проблема:

Для WYSIWYG-редактирования текста я бы хотел использовать небольшой редактор Wysiwyg (например, jHtmlArea). Этот редактор будет показывать плавающие div, поэтому мне придется перехватывать много нажатий клавиш (пробелы / стрелки / и т. Д.)

В настоящее время моя HTML-область загружается так:

<script type="text/javascript">    
$(function() {
            $("#txtCustomHtmlArea").htmlarea({
                 loaded: function() {
                 $(this.editor).keydown(function(event) { 
                     if(event.keyCode == 32) {
                         this.pasteHTML('<b>test</b>');
                         return false;
                     }

                     return true;
                });
            }

Проблема с этим кодом в том, что this.editor не имеет метода pasteHTML. Как я могу использовать этот метод из этого (= htmlarea) .event?

Скорее всего, это довольно начинающий вопрос, но я действительно не знаю, где искать.

Спасибо

Ответы [ 2 ]

1 голос
/ 07 ноября 2011

Вот как я это делаю:

    $("#my-text-area").htmlarea({
        loaded: function () {
            $.myControl = { jhtmlarea: this };
        }
    });

Тогда я могу сослаться:

$($.myControl.jhtmlarea.editor.body).keypress(function (e) { });

Это также дает мне дескриптор моего объекта области html снаружи iFrame.

0 голосов
/ 17 августа 2011

Я думаю, вы, возможно, путаете себя с использованием слова «это» (я определенно изо всех сил стараюсь отследить, к чему это относится!).

В качестве теста вы можете заменить

this.pasteHTML(...)

с

$("#txtCustomHtmlArea").pasteHTML(...)

или, может быть

$("#txtCustomHtmlArea").editor.pasteHTML(...)

и посмотрите, поможет ли это?

...