A free WordPress plugin – download from WordPress.org
"TinyMCE remove-base-64-image" immediately removes any image dropped into the TinyMCE editor with Firefox and alerts the user with the reason.
Please note that this plugin is no longer useful for WordPress 3.9 (or higher) as TinyMCE has been improved to allow image upload by drag-and-drop, with the same file size reduction as via the upload button.
Why would anyone need this plugin?
Firefox allows a user to drag and drop an image from their desktop into the TinyMCE editor (Visual), where it is immediately converted to base64 code, which is undesirable as the image file size is much larger than the equivalent added by the standard WordPress method because...
- base64 images are larger than binary images
- WordPress would normally have 'crunched' the image to give various different sizes, including a thumbnail, all smaller than the original
'Sorry, dragging images into the editor is blocked as it will cause your webpages to load slowly, please use the "Add Media" button!'
If you manage multiple WordPress sites this plugin will save you time checking if your clients are unwittingly crippling their page downloads.
- Upload the folder 'tinymce-remove-base64-image' to the /wp-content/plugins/ directory
- Activate the plugin through the 'Plugins' menu in WordPress
Frequently Asked Questions
Q. Why does this plugin sometimes take more than 1.5 seconds to give an alert?
A. "TinyMCE remove-base-64-image" can only remove an image and alert the user after browser conversion of the image to base64 code has completed, and this takes longer for large images.
Q. Why doesn't this plugin work with my theme?
A. Make sure you have the following hook in your theme's header.php file just before </head>:
<?php wp_head(); ?>
A. Only TinyMCE, the default WordPress editor.
I am aware that using setInterval to detect a freshly dropped image is not ideal from a theoretical standpoint as most of the time it's unnecessary and it could impact TinyMCE performance, albeit by a tiny amount. If you check the TinyMCE forums you will find another suggested method: Disable drag/drop facility (last post by Arvind, 2012-07-09) which involves modifying tiny_mce.js to detect the DOMNodeInserted event then deleting the new image node. While this seems sound, if you try to locate the '_addEvents function section' mentioned you'll find it's not in tiny_mce.js version 3.5.8-wp. I also searched the TinyMCE documentation for a way to bind this event in a plugin, but no joy there either.
Corrected folder name in path.
First version released.