diff --git a/static/application.js b/static/application.js
index 9b584508..374cdf25 100644
--- a/static/application.js
+++ b/static/application.js
@@ -1044,7 +1044,17 @@ function chunkOnPaste(event) {
if(event.originalEvent.clipboardData && document.queryCommandSupported && document.execCommand && document.queryCommandSupported('insertText')) {
event.preventDefault();
document.execCommand('insertHTML', false, event.originalEvent.clipboardData.getData('text/plain').replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"').replace(/'/g, ''').replace(/\n/g, '
'));
- }
+ } else if (event.originalEvent.clipboardData) {
+ event.preventDefault();
+ var s = getSelection(); // WARNING: Do not use rangy.getSelection() instead of getSelection()
+ var r = s.getRangeAt(0);
+ r.deleteContents();
+ var nodes = Array.from($('' + event.originalEvent.clipboardData.getData('text/plain').replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"').replace(/'/g, ''').replace(/\n/g, '
') + '')[0].childNodes);
+ for(var i = 0; i < nodes.length; i++) {
+ r.insertNode(nodes[i]);
+ r.collapse(false);
+ }
+ }
}
// This gets run every time the caret moves in the editor