CLEditor динамическое добавление текста

Я использую CLEditor для сайта, над которым я работаю. Я пытаюсь добавить динамический текст в текстовое поле с помощью jQuery. Обычно я буду использовать что-то вроде:

$('#myText').val('Here some dynamic text');

Но это просто не работает с CLEditor. При отключении CLEditor все работает нормально, но при повторном включении текст просто исчезает. Я пытался найти решение на веб-сайте, но не могу найти ни одного. У кого-нибудь была такая же проблема в последнее время?

Заранее спасибо.

6 ответов

Решение
$("#input").cleditor({width:500, height:250,updateTextArea:function (){....}})

CLEditor обновляет содержимое iFrame при вызове метода размытия textarea:

//make CLEditor
$(document).ready(function() {
  $('#text').cleditor();
});

//set value
$('#text').val('new text data').blur();

У меня возникла та же проблема, и я наконец нашел в комментариях что-то полезное, так что вот что у меня есть; надеюсь, это пригодится кому-то в будущем.

// initializing the cleditor on document ready
var $editor = $('#description').cleditor()

Затем, когда я получаю html и мне нужно динамически вставить его в кледитор, вот что я использую:

// update the text of the textarea
// just some simple html is used for testing purposes so you can see this working
$('#description').val('<strong>testing</strong>');

// update cleditor with the latest html contents
$editor.updateFrame();

Я знаю, что это своего рода поздний ответ, но:

$('#myText').cleditor()[0].execCommand('inserthtml','Here some dynamic text');

действительно самый простой ответ, если вы спрашиваете меня. Другой простой ответ дал Фрэнсис Льюис выше.

Например, если кому-то это будет полезно, вы можете использовать его.

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

<script type="text/javascript">
$(document).ready(function() {

// Define and load CLEditor
    $("#input").cleditor({
        width: 800,
        height: 300,
        controls: "bold italic underline subscript superscript | color highlight removeformat | alignleft center alignright justify | table | undo redo | cut copy paste pastetext | print source ",
            useCSS: false
    });


// on change dropdown value
    $('#dropdown').change(function() {
// doing AJAX request by GET
        $.get(
// pushing AJAX request to this file
                'ajax/change_dimmensions_table.php',
// pushing some data, from which to determine, what content I need to get back
                    {'dropdown_value':$('#dropdown').val()},
                function(data, textStatus) {
// Clearing the content of CLEditor, adding new content to CLEditor
                        $("#input").cleditor({width:800, height:300, updateTextArea:function (){}})[0].clear().execCommand("inserthtml", data, null, null);
            },
                    'html'
        );
    });
});
</script>

change_dimmensions_table.php:

<?php 
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past

if ( ! empty( $_GET['dropdown_value']))
{
    mysql_connect('localhost', 'username', 'password');
    mysql_select_db('database');
    mysql_query("SET names utf8");

    $sql = "
SELECT
    `html_content`
FROM
    `templates`
WHERE
    `dropdown` = '{$_GET['dropdown_value']}'
LIMIT 1
    ";

    $result = mysql_query( $sql) or die( mysql_error() . " SQL: {$sql}");

    if ( mysql_num_rows($result) > 0)
    {
        while ( $row = mysql_fetch_object( $result))
        {
            $html = $row->html_content;
        }
    }

    if ( ! empty( $html))
    {
        echo $html;
    }
}
?>

execCommand - это шарм, но он не работает в IE, val().blur() надежен

Другие вопросы по тегам