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

时间:2014-09-07 02:37:14

标签: javascript iframe ckeditor preloader

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

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

我已经开始使用"设置"和" onContentLoad"要处理这个问题的元素定义的功能,我似乎找不到让它运行的方法。我也(不成功)直接对插件/ iframedialog / plugin.js进行了更改,但是如果可能的话我想避免这样做。

1 个答案:

答案 0 :(得分:0)

结果" 设置"使用是错误的。 "的昂秀"是我在寻找的。

以下是我如何做到这一点:

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();
}

我不得不使用setTimeout,否则它根本不起作用。我可以把它设置为&#34; 1&#34;它仍然可以工作,但我选择了更高的数字,因此快速/缓存的负载不会显示图形。