MDL-57374 editor: Pasting plain text in Atto removes all styles/classes

This commit is contained in:
David Bogner 2016-12-13 15:04:13 +01:00
parent d97582fd27
commit 726adbc22a
4 changed files with 36 additions and 18 deletions

View File

@ -1395,9 +1395,9 @@ EditorClean.prototype = {
isHTML = (types.indexOf('text/html') > -1);
}
var content;
if (isHTML) {
// Get the clipboard content.
var content;
try {
content = event.clipboardData.getData('text/html');
} catch (error) {
@ -1427,10 +1427,16 @@ EditorClean.prototype = {
this.updateOriginal();
return false;
} else {
// Due to poor cross browser clipboard compatibility, the failure to find html doesn't mean it isn't there.
// Wait for the clipboard event to finish then fallback clean the entire editor.
this.fallbackPasteCleanupDelayed();
return true;
try {
// Plaintext clipboard content can only be retrieved this way.
content = event.clipboardData.getData('text');
} catch (error) {
// Something went wrong. Fallback.
// Due to poor cross browser clipboard compatibility, the failure to find html doesn't mean it isn't there.
// Wait for the clipboard event to finish then fallback clean the entire editor.
this.fallbackPasteCleanupDelayed();
return true;
}
}
} else {
// If we reached a here, this probably means the browser has limited (or no) clipboard support.

File diff suppressed because one or more lines are too long

View File

@ -1384,9 +1384,9 @@ EditorClean.prototype = {
isHTML = (types.indexOf('text/html') > -1);
}
var content;
if (isHTML) {
// Get the clipboard content.
var content;
try {
content = event.clipboardData.getData('text/html');
} catch (error) {
@ -1416,10 +1416,16 @@ EditorClean.prototype = {
this.updateOriginal();
return false;
} else {
// Due to poor cross browser clipboard compatibility, the failure to find html doesn't mean it isn't there.
// Wait for the clipboard event to finish then fallback clean the entire editor.
this.fallbackPasteCleanupDelayed();
return true;
try {
// Plaintext clipboard content can only be retrieved this way.
content = event.clipboardData.getData('text');
} catch (error) {
// Something went wrong. Fallback.
// Due to poor cross browser clipboard compatibility, the failure to find html doesn't mean it isn't there.
// Wait for the clipboard event to finish then fallback clean the entire editor.
this.fallbackPasteCleanupDelayed();
return true;
}
}
} else {
// If we reached a here, this probably means the browser has limited (or no) clipboard support.

View File

@ -147,9 +147,9 @@ EditorClean.prototype = {
isHTML = (types.indexOf('text/html') > -1);
}
var content;
if (isHTML) {
// Get the clipboard content.
var content;
try {
content = event.clipboardData.getData('text/html');
} catch (error) {
@ -179,10 +179,16 @@ EditorClean.prototype = {
this.updateOriginal();
return false;
} else {
// Due to poor cross browser clipboard compatibility, the failure to find html doesn't mean it isn't there.
// Wait for the clipboard event to finish then fallback clean the entire editor.
this.fallbackPasteCleanupDelayed();
return true;
try {
// Plaintext clipboard content can only be retrieved this way.
content = event.clipboardData.getData('text');
} catch (error) {
// Something went wrong. Fallback.
// Due to poor cross browser clipboard compatibility, the failure to find html doesn't mean it isn't there.
// Wait for the clipboard event to finish then fallback clean the entire editor.
this.fallbackPasteCleanupDelayed();
return true;
}
}
} else {
// If we reached a here, this probably means the browser has limited (or no) clipboard support.