How to make tinymce paste in plain text by default
For the tinyMCE 3X or 4X things have change a little. now you can do this and it works fine.
tinymce.init({
plugins: "paste",
paste_as_text: true
});
I have solved this problem with this code
tinyMCE.init({
...
plugins : "paste",
paste_text_sticky : true,
setup : function(ed) {
ed.onInit.add(function(ed) {
ed.pasteAsPlainText = true;
});
}
....
})
EDIT: this solution is for version 3.x, for 4.x version read the answer from @Paulo Neves
The problem is that Paste plugin automatically resets plain text paste on every paste. So all we need to do - set it back. The following code should help.
tinyMCE.init({
...
oninit : "setPlainText",
plugins : "paste"
....
});
The definition of setPlainText
function setPlainText() {
var ed = tinyMCE.get('elm1');
ed.pasteAsPlainText = true;
//adding handlers crossbrowser
if (tinymce.isOpera || /Firefox\/2/.test(navigator.userAgent)) {
ed.onKeyDown.add(function (ed, e) {
if (((tinymce.isMac ? e.metaKey : e.ctrlKey) && e.keyCode == 86) || (e.shiftKey && e.keyCode == 45))
ed.pasteAsPlainText = true;
});
} else {
ed.onPaste.addToTop(function (ed, e) {
ed.pasteAsPlainText = true;
});
}
}
So now it always will be plain.
Just ran into this one myself and discovered that as of TinyMCE 3.4.2 you can simply:
paste_text_sticky: true,
paste_text_sticky_default: true
...which was nice.
I think the easiest way would be this:
tinymce.init({
...
paste_as_text: true,
plugins: "paste",
...
});