var el; // Get the main editable Slate element into this variable. el.addEventListener('customInsertText', function(event) { event.preventDefault(); setTimeout(function() { if (// For Safari browser) { replaceSafari(event.detail.text); return; } replaceForAll(el, event.detail.text); }, 100); }); var replaceForAll = function(element, text) { var clipboardEvent = new ClipboardEvent('paste', { clipboardData: new DataTransfer(), bubbles: !0 }); clipboardEvent.clipboardData.setData('text/plain', text); element.dispatchEvent(clipboardEvent); }; var replaceSafari = function(text) { document.execCommand('insertText', false, text); };