From 718af6f7fa8929babc1b6eea993f2352ebb32c3c Mon Sep 17 00:00:00 2001
From: Gnome Ann <>
Date: Wed, 13 Oct 2021 12:41:43 -0400
Subject: [PATCH] Pasting fallback for browsers with no execCommand support
---
static/application.js | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
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