Jodit:粘贴调用 html 粘贴弹出窗口的文本失败



我正在向网页添加一个Jodit编辑器。我希望能够将格式化的文本从MS Word粘贴到编辑器中。我可以粘贴不调用小弹出窗口的文本来粘贴 html 文本,但不能粘贴带有格式的文本。控制台记录一条警告,指出addRange(): The given range isn't in document。实际上,日志记录window.getSelection().rangeCount返回 0(而不是其他情况下的 1(。我不知道从各种程序粘贴有什么问题,当然,在网站上有效。我错过了活动吗?

问题是编辑器位于 ag-grid 单元格中。从MS Word粘贴到编辑器中时,对话框中的不同选择位于ag-grid单元格之外,因此单击对话框中结束了ag-grid会话! 由于我正在寻找的行为是保持格式,因此我只是关闭了对话框(askBeforePasteFromWord: falseaskBeforePasteHTML: false(。为了仍然处理来自MS Word的粘贴(因为MS Word(,在Jodit的作者代码中添加了自动处理(https://github.com/xdan/jodit/issues/197(:

jodit_editor = new Jodit(text_area_element, {
hotkeys: {
redo: 'ctrl+z',
undo: 'ctrl+y,ctrl+shift+z',
indent: 'ctrl+]',
outdent: 'ctrl+[',
bold: 'ctrl+b',
italic: 'ctrl+i',
removeFormat: 'ctrl+shift+m',
insertOrderedList: 'ctrl+shift+7',
insertUnorderedList: 'ctrl+shift+8',
openSearchDialog: 'ctrl+f',
openReplaceDialog: 'ctrl+r',
},
events: {
processPaste: function(event, html){
jodit_editor.selection.insertHTML(html);
jodit_editor.tempContent = jodit_editor.getEditorValue();
},
afterPaste: function(event){
let el = $('<div></div>');
el.html(jodit_editor.tempContent ? jodit_editor.tempContent : jodit_editor.getEditorValue());
jodit_editor.setEditorValue(el.html());
jodit_editor.tempContent = null;
},
},
askBeforePasteFromWord: false,
askBeforePasteHTML: false
});

最新更新