diff --git a/packages/rocketchat-emoji/client/emojiButton.js b/packages/rocketchat-emoji/client/emojiButton.js index 454f602927c8..6162ee9ca5cd 100644 --- a/packages/rocketchat-emoji/client/emojiButton.js +++ b/packages/rocketchat-emoji/client/emojiButton.js @@ -14,9 +14,7 @@ Template.messageBox.events({ const caretPos = input.selectionStart; const textAreaTxt = input.value; input.focus(); - if (document.execCommand) { - document.execCommand('insertText', false, emojiValue); - } else { + if (!document.execCommand || !document.execCommand('insertText', false, emojiValue)) { input.value = textAreaTxt.substring(0, caretPos) + emojiValue + textAreaTxt.substring(caretPos); } diff --git a/packages/rocketchat-ui-message/client/messageBox.js b/packages/rocketchat-ui-message/client/messageBox.js index 9bde15d0c0ec..5255d5f61f13 100644 --- a/packages/rocketchat-ui-message/client/messageBox.js +++ b/packages/rocketchat-ui-message/client/messageBox.js @@ -51,11 +51,10 @@ function applyMd(e, t) { box.selectionStart = selectionStart - startPattern.length; box.selectionEnd = selectionEnd + endPattern.length; - if (document.execCommand) { - document.execCommand('insertText', false, selectedText); - } else { + if (!document.execCommand || !document.execCommand('insertText', false, selectedText)) { box.value = initText.substr(0, initText.length - startPattern.length) + selectedText + finalText.substr(endPattern.length); } + box.selectionStart = selectionStart - startPattern.length; box.selectionEnd = box.selectionStart + selectedText.length; $(box).change(); @@ -68,11 +67,10 @@ function applyMd(e, t) { apply pattern restore selection */ - if (document.execCommand) { - document.execCommand('insertText', false, this.pattern.replace('{{text}}', selectedText)); - } else { + if (!document.execCommand || !document.execCommand('insertText', false, this.pattern.replace('{{text}}', selectedText))) { box.value = initText + this.pattern.replace('{{text}}', selectedText) + finalText; } + box.selectionStart = selectionStart + this.pattern.indexOf('{{text}}'); box.selectionEnd = box.selectionStart + selectedText.length; $(box).change();