Javascript CKEditor:如何在自定义插件中为iframe对话框添加图形预加载程序?

Javascript CKEditor:如何在自定义插件中为iframe对话框添加图形预加载程序?,javascript,iframe,ckeditor,preloader,Javascript,Iframe,Ckeditor,Preloader,我已经创建了一个CKEditor(4.4.4)插件,它利用了iframedialog元素。我遇到的问题是,在对话框(属性)编辑器中加载iframe的内容可能需要几秒钟。与此同时,用户只是坐在那里想知道UI在哪里,直到它神奇地出现 理想情况下,我希望在加载时隐藏iframe,显示预加载图形,并在加载后隐藏图形和显示iframe 我已经研究过使用元素定义的“setup”和“onContentLoad”函数来处理这个问题,我似乎找不到一种方法来让它工作。我也(未成功)考虑过直接对plugins/ifr

我已经创建了一个CKEditor(4.4.4)插件,它利用了iframedialog元素。我遇到的问题是,在对话框(属性)编辑器中加载iframe的内容可能需要几秒钟。与此同时,用户只是坐在那里想知道UI在哪里,直到它神奇地出现

理想情况下,我希望在加载时隐藏iframe,显示预加载图形,并在加载后隐藏图形和显示iframe

我已经研究过使用元素定义的“setup”和“onContentLoad”函数来处理这个问题,我似乎找不到一种方法来让它工作。我也(未成功)考虑过直接对plugins/iframedilog/plugin.js进行更改,但如果可能的话,我希望避免这样做。

结果是“设置”是错误的。“onShow”是我想要的

我是如何做到这一点的:

onShow: function (e) {
    var iframeId = this._.frameId;
    loader = setTimeout(function () {
        $("#" + iframeId).hide();
        $("#" + iframeId).after("<div id='" + iframeId + "-loader' class='preloader-small'></div>");
    }, 250);
},

onContentLoad: function () {
    clearTimeout(loader);
    $("#" + this._.frameId + "-loader").hide();
    $("#" + this._.frameId).show();
}
onShow:function(e){
var iframeId=this.\uu.frameId;
加载程序=设置超时(函数(){
$(“#”+iframeId.hide();
$(“#”+iframeId);
}, 250);
},
onContentLoad:函数(){
clearTimeout(加载程序);
$(“#”+this.#.frameId+“-loader”).hide();
$(“#”+this.#.frameId).show();
}
我必须使用setTimeout,否则它根本不起作用。我可以将其设置为低至“1”,它仍然可以工作,但我选择了更高的数字,以便快速/缓存加载不会显示图形