UEditor 上传图片后显示“加载中”,只有再次编辑内容后图片才正常显示的问题

183 阅读1分钟

通常是检查图片上传回调逻辑问题

图片上传成功后,检查 ueditor.all.js 中处理上传回调的代码

通常在 27465行附近

function callback() {
    try {
        var link, json, loader,
            body = (iframe.contentDocument || iframe.contentWindow.document).body,
            result = body.innerText || body.textContent || '';
        json = (new Function("return " + result))();
        link = me.options.imageUrlPrefix + json.url;
        if (json.state == 'SUCCESS' && json.url) {
            loader = me.document.getElementById(loadingId);
            loader.setAttribute('src', link);
            loader.setAttribute('_src', link);
            loader.setAttribute('title', json.title || '');
            loader.setAttribute('alt', json.original || '');
            loader.removeAttribute('id');
            domUtils.removeClasses(loader, 'loadingclass');
            // 手动添加下面这行代码
            me.fireEvent('contentchange');
        } else {
            showErrorLoader && showErrorLoader(json.state);
        }
    } catch (er) {
        showErrorLoader && showErrorLoader(me.getLang('simpleupload.loadError'));
    }
    form.reset();
    domUtils.un(iframe, 'load', callback);
}

作用就是在图片 src 更新后,手动触发编辑器内容变更,确保图片显示