JQuery Keyup на данные внутри CKEDITOR - PullRequest
1 голос
/ 07 ноября 2011

Я создаю небольшой поддельный мобильный телефон html / css, который автоматически вставляет данные из нескольких полей ввода на странице, например так: (телефон вставляется с помощью iframe .. (не спрашивайте) ..)

$('#mgSiteDescription').bind('keyup', function() { 
   var iframedoc = $('.liveDemoFrame').get(0).contentDocument; 
   $(iframedoc).find('#header h2').html($(this).val()); 
});

Это прекрасно работает для моих полей ввода.

Теперь я использую CKEditor для моих текстовых областей, что подводит меня к моей проблеме.Поскольку текстовая область не обновляется в режиме реального времени на странице, мое событие keyup не работает и, следовательно, не обновляет мой поддельный телефон.Как я могу настроить CKEditor, чтобы он обновлял скрытую текстовую область?Или, может быть, даже получить доступ к iframe CKEditor и извлечь эти данные?

Спасибо.

1 Ответ

3 голосов
/ 07 ноября 2011

Обновление:

Мне удалось заставить функцию keyup работать через CKEditor, и она даже удаляет контент с моего поддельного мобильного телефона iFrame. Я просто не знаю, как потом вставить значение / данные CKeditor в мой iframe .. если это имеет смысл?

    CKEDITOR.instances.mgAddHomePage.on('contentDom', function() {
        CKEDITOR.instances.mgAddHomePage.document.on('keyup', function(event) {

            var iframedoc = $('.liveDemoFrame').get(0).contentDocument; 
            $(iframedoc).find('#content').html($(this).val());      

        });
    });

Я думаю, что этот бит мне нужно обновить?

html($(this).val())

Есть идеи с чем?

Edit:

Так что я понял, что это работает достаточно близко к тому, что я намеревался. Вот окончательный код для любого, кто находится в похожей позиции:

    CKEDITOR.instances.mgAddHomePage.on('contentDom', function() {
        CKEDITOR.instances.mgAddHomePage.document.on('keyup', function(event) {
            var iframedoc = $('.liveDemoFrame').get(0).contentDocument; 
            $(iframedoc).find('#content').html(CKEDITOR.instances.mgAddHomePage.getData());         
        });
    });

Даже если вы не используете iFrames, это все равно будет работать. Просто взломайте jquery iframe.

...