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

This commit is contained in:
David Bogner
2017-01-12 18:01:30 +01:00
parent d97582fd27
commit 726adbc22a
4 changed files with 36 additions and 18 deletions
@@ -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
@@ -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.
+11 -5
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.