3

jQuery を使用して、エディター自体の外部から WYSIWYG CLEditor に HTML マークアップを追加しようとしています。

これまでのところ...

$('.add-image').click(
    function()
    {
        theurl = $(this).text();
        theimage = '<a href="' + theurl + '" class="lightbox"><img src="' + theurl + '" /></a>';
        // Now What? 
    }
);

しかし、文字列を WYSIWYG に追加する方法に途方に暮れており、気が狂い始めています!

4

2 に答える 2

4

これは上書きされます:

$("#inputID").val(theimage); 
$("#inputID").cleditor()[0].updateFrame();

これは追加されます:

currentval = $("#inputID").val();
$("#inputID").val(theimage);
$("#inputID").val(currentval + theimage); 

または、これを試してください:

$('#inputID').val('new text data').blur();

inputID は CLEditor 入力の ID です。

また、これにはこれに関するいくつかの議論があります:

CLEditor 動的追加テキスト

于 2012-02-05T01:13:51.693 に答える
1

意図したとおりに動作するように、CCCasons ソリューションに 2 つの小さな編集を加えました。

$('.add-image').click(
function()
{
    theurl = $(this).text();
    theimage = '<a href="' + theurl + '" class="thelightbox" style="display: block"><img src="' + theurl + '" /></a><br/>';

    // Get the current value of the textarea otherwise it will be overwritten
    currentval = $("textarea.wysiwyg").val();

    $("textarea.wysiwyg").val(currentval + theimage); 
    $("textarea.wysiwyg").cleditor()[0].updateFrame();                  
}
);

1) 挿入されたリンクの末尾に改行を追加しました。それ以外の場合は、画像を追加した後に wysiwyg を入力しようとすると、リンク内に入力されます。

2)最初にテキストエリアの現在の値を取得して、画像による上書きを停止しました。

繰り返しになりますが、CCCason に感謝します。

于 2012-02-05T10:56:32.590 に答える