1

たとえば、CKEDITOR の準備が整ったインスタンスがあり、同じページに次のマークアップを含む画像のリストがあるとします。

<div class="galleryPictures">
    <a href="#image-id-1" data-id="1" data-img-src="/pictures/image-1.jpg" class="galleryPicture">
        <img src="/pictures/image-1.jpg" />
    </a>
    <a href="#image-id-2" data-id="2" data-img-src="/pictures/image-2.jpg" class="galleryPicture">
        <img src="/pictures/image-2.jpg" />
    </a>
    <a href="#image-id-3" data-id="3" data-img-src="/pictures/image-3.jpg" class="galleryPicture">
        <img src="/pictures/image-3.jpg" />
    </a>
</div>

a.galleryPictureそして、これらの項目に委任された次の jQuery クリック ハンドラーがあります。

$(document).ready(function() {
    $('.galleryPictures').on('click', 'a.galleryPicture', function() {
        // when this accours I would like to open CKEditor's
        // Insert-Image Component, and to get the "url" field filled with
        // $(this).data('img-src'); value
    });
});

プログラムで Insert-Image をトリガー/開くことは可能ですか?

4

1 に答える 1

1

それを見つけた。他の誰かに役立つかもしれません:

Firebug を使用した簡単な検査で、<a>どのクリックで Insert-Image コンポーネントの開始がトリガーされるか、onclick属性に次の関数呼び出しが含まれていることがわかりました。

CKEDITOR.tools.callFunction(51,{});
// second argument is {} (an empty js-object), it the original the <a> onclick it was like this:
// CKEDITOR.tools.callFunction(51, this); meaning it was sending the instance of that element

この呼び出しの後、次のようなことを行うことができます。

CKEDITOR.tools.callFunction(51,{});

// a failsafe if jQuery doesn't find the specified element after the function is executed
setTimeout(function() {
    $('#cke_69_textInput').val('someImageUrl');
}, 50);
于 2013-02-27T13:05:53.377 に答える