JaC*_*hNo 4 javascript jquery tinymce-4
我创建了一个插件来处理tinymce的图像上传。这一切都很好。我希望能够做的是,如果用户删除了该图像,则将其从服务器中删除,这样我就不会得到大量孤立的文件。
我已经能够使用tinymce init的设置部分来监听nodechange的出现
<script src="//tinymce.cachefly.net/4.0/tinymce.min.js"></script>
<script type="text/javascript">
tinymce.init({
selector: "textarea",
plugins: "autoresize",
toolbar: "insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image jbimages",
relative_urls: false,
setup : function(ed) {
ed.on("NodeChange", function(e) {
console.log('change event', e);
});
}
});</script>
Run Code Online (Sandbox Code Playgroud)
这给了我一个可以在控制台中看到的事件,但是我找不到从该事件中获取一些信息的方法,该事件告诉我已执行了img删除,因此可以从服务器中删除该图像。
我在这里为此创建了一个小提琴
如果您加载控制台并删除图像,您将明白我的意思。我缺少事件的某些属性或方法吗?
提前致谢
小智 6
我试图做同样的事情,但是经过大量的互联网拖曳和调试之后,我能看到的唯一方法是观察编辑器中是否在编辑器中选择了图像时按下了Delete键或Backspace键。
因此,在您的tinymce.init“设置”函数中:
ed.on('KeyDown', function (e) {
if ((e.keyCode == 8 || e.keyCode == 46) && editor.selection) { // delete & backspace keys
var selectedNode = editor.selection.getNode(); // get the selected node (element) in the editor
if (selectedNode && selectedNode.nodeName == 'IMG') {
MyCallback(selectedNode.src); // A callback that will let me invoke the deletion of the image on the server if appropriate for the image source.
}
}
});
Run Code Online (Sandbox Code Playgroud)
我在一个新插件中进行了设置,然后将回调添加为该插件的设置之一。