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() надежен