CLEditor动态添加文本

时间:2011-02-23 15:35:00

标签: jquery

我正在使用CLEditor来处理我正在处理的网站。我正在尝试使用jQuery将动态文本添加到textarea。通常我会使用类似的东西:

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

但这只适用于CLEditor。禁用CLEditor时,它可以正常工作,再次启用它,文本就会消失。我试着在网站上寻找解决方案,但我找不到任何解决方案。最近有人有同样的问题吗?

提前致谢。

6 个答案:

答案 0 :(得分:24)

当调用textarea的blur方法时,CLEditor更新iFrame内容:

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

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

答案 1 :(得分:6)

我遇到了同样的问题,最后在评论中发现了一些有用的东西,所以这就是我所拥有的;希望这会对未来的某些人派上用场。

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

然后,当我得到一些html并需要动态地将其插入到cleditor中时,这是我使用的:

// 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();

答案 2 :(得分:3)

$("#input").cleditor({width:500, height:250,updateTextArea:function (){....}})

答案 3 :(得分:2)

例如,如果对某人有用,则可以使用它。

情况,我需要更改下拉字段值,以更改cleditor的内容。

<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;
    }
}
?>

答案 4 :(得分:2)

我知道这是一个迟到的答案,但是:

$('#myText').cleditor()[0].execCommand('inserthtml','Here some dynamic text');
如果你问我,

真的是最简单的答案。弗朗西斯·刘易斯(Francis Lewis)给出了另一个简单的答案。

答案 5 :(得分:0)

execCommand很有魅力,但它在IE中不起作用,val()。blur()是可靠的