是否可以通过编程方式打开CKEditor Insert-Image Component?

时间:2013-02-27 12:08:45

标签: events ckeditor eventtrigger insert-image

例如,如果我有一个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?

1 个答案:

答案 0 :(得分:1)

找到它。可能对别人有所帮助:

使用Firebug进行简单检查后,我看到<a>点击触发插入 - 图像组件的开放包含此函数调用的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);