Tinymce 上载失败后从内容中删除图像
使用TinyMCE 4和带有自定义图像上载处理程序(基于)的粘贴插件,我的上载工作正常。但是,当上传失败时,图像仍会添加到内容中。该示例指示为错误调用failure方法,但这不会删除映像 我尝试添加一个粘贴后处理回调来过滤内容,但在这一点上,成功上传的图像和失败的图像之间的内容没有区别。它们都出现在内容中,如:Tinymce 上载失败后从内容中删除图像,tinymce,tinymce-4,Tinymce,Tinymce 4,使用TinyMCE 4和带有自定义图像上载处理程序(基于)的粘贴插件,我的上载工作正常。但是,当上传失败时,图像仍会添加到内容中。该示例指示为错误调用failure方法,但这不会删除映像 我尝试添加一个粘贴后处理回调来过滤内容,但在这一点上,成功上传的图像和失败的图像之间的内容没有区别。它们都出现在内容中,如: <div style="display:none"><img src="data:image/jpeg;base64, datahere" /></div&
<div style="display:none"><img src="data:image/jpeg;base64, datahere" /></div>
内容的最终结果实际上是不同的。成功上载的图像源如下:
<img src="http://website/uploads/mceclip11.jpg" />
而失败的上载看起来像:
<img src="blob:http://website/dd3bdcda-b7b1-40fe-9aeb-4214a86a92a9">
为了尝试这一点,我创建了一个
关于如何在向用户显示失败的上传图像之前将其从内容中删除,您有什么想法吗?对于任何可能尝试类似操作的人,我想出了一种解决方法 在调用了示例中所示的failure方法之后,我现在调用一个方法来在失败的图像出现在编辑器中之前删除它 该函数如下所示:
function removeFailedUpload() {
var editor = tinymce.EditorManager.get('editorId');
var $html = $('<div />',{html:editor.getContent()});
$html.find('img[src^="data:"]').remove();
editor.setContent($html.html());
}
函数removeFailedUpload(){
var editor=tinymce.EditorManager.get('editorId');
var$html=$(“”,{html:editor.getContent()});
$html.find('img[src^=“data:”).remove();
setContent($html.html());
}
我建议使用两种方法来更紧凑地移除光标,同时保持光标位置
方法1:
var editor = tinymce.activeEditor;
editor.selection.collapse();
$(editor.dom.doc).find('img[src^="blob:"]').remove();
var editor = tinymce.activeEditor;
var img = $(editor.dom.doc).find('img[src^="blob:"]').get(0);
if (img)
editor.execCommand('mceRemoveNode', false, img);
方法2:
var editor = tinymce.activeEditor;
editor.selection.collapse();
$(editor.dom.doc).find('img[src^="blob:"]').remove();
var editor = tinymce.activeEditor;
var img = $(editor.dom.doc).find('img[src^="blob:"]').get(0);
if (img)
editor.execCommand('mceRemoveNode', false, img);
最简单的解决方案是使用撤消管理器:
tinymce.activeEditor.undoManager.undo();
你不恢复光标的位置吗?