Disable pasting base64 images in ckeditor

pull/1/head
yflory 6 years ago
parent aa2a01174f
commit 3f89dd9908

@ -14,6 +14,7 @@ www/common/hyperscript.js
www/pad/wysiwygarea-plugin.js www/pad/wysiwygarea-plugin.js
www/pad/mediatag-plugin.js www/pad/mediatag-plugin.js
www/pad/mediatag-plugin-dialog.js www/pad/mediatag-plugin-dialog.js
www/pad/disable-base64.js
www/kanban/jkanban.js www/kanban/jkanban.js

@ -0,0 +1,40 @@
( function() {
CKEDITOR.plugins.add('blockbase64', {
init: function (editor) {
var replaceImgText = function (html) {
var ret = html.replace( /<img[^>]*src="data:image\/(bmp|dds|gif|jpg|jpeg|png|psd|pspimage|tga|thm|tif|tiff|yuv|ai|eps|ps|svg);base64,.*?"[^>]*>/gi,
function () {
console.error("Direct image paste is not allowed.");
return '';
});
return ret;
};
var chkImg = function () {
// don't execute code if the editor is readOnly
if (editor.readOnly) {
return;
}
setTimeout( function() {
editor.document.$.body.innerHTML = replaceImgText(editor.document.$.body.innerHTML);
},100);
};
editor.on('contentDom', function () {
// For Firefox
editor.document.on('drop', chkImg);
// For IE
editor.document.getBody().on('drop', chkImg);
});
editor.on('paste', function(e) {
var html = e.data.dataValue;
if (!html) { return; }
e.data.dataValue = replaceImgText(html);
});
}
});
})();

@ -740,6 +740,7 @@ define([
'.cke_body_width body > *:first-child { margin-top: 0; }'; '.cke_body_width body > *:first-child { margin-top: 0; }';
Ckeditor.addCss(newCss); Ckeditor.addCss(newCss);
Ckeditor.plugins.addExternal('mediatag','/pad/', 'mediatag-plugin.js'); Ckeditor.plugins.addExternal('mediatag','/pad/', 'mediatag-plugin.js');
Ckeditor.plugins.addExternal('blockbase64','/pad/', 'disable-base64.js');
module.ckeditor = editor = Ckeditor.replace('editor1', { module.ckeditor = editor = Ckeditor.replace('editor1', {
customConfig: '/customize/ckeditor-config.js', customConfig: '/customize/ckeditor-config.js',
}); });

@ -1,12 +1,3 @@
/**
* @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview The Image plugin.
*/
( function() { ( function() {
CKEDITOR.plugins.add( 'mediatag', { CKEDITOR.plugins.add( 'mediatag', {

Loading…
Cancel
Save