我正在使用CLEditor来处理我正在处理的网站。我正在尝试使用jQuery将动态文本添加到textarea。通常我会使用类似的东西:
$('#myText').val('Here some dynamic text');
但这只适用于CLEditor。禁用CLEditor时,它可以正常工作,再次启用它,文本就会消失。我试着在网站上寻找解决方案,但我找不到任何解决方案。最近有人有同样的问题吗?
提前致谢。
答案 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()是可靠的