|
@@ -124,10 +124,19 @@ export const hotkeyEvent = (vditor: IVditor, editorElement: HTMLElement) => {
|
|
|
}
|
|
|
|
|
|
// 重置 comment
|
|
|
- if (vditor.options.comment.enable && vditor.currentMode === "wysiwyg" &&
|
|
|
- (event.key === "Backspace" || matchHotKey("⌘X", event))) {
|
|
|
+ if((event.key === "Backspace" || matchHotKey("⌘X", event)) &&
|
|
|
+ vditor.options.comment.enable && vditor.currentMode === "wysiwyg") {
|
|
|
vditor.wysiwyg.getComments(vditor);
|
|
|
}
|
|
|
+ //重置选中内容
|
|
|
+ if(event.key === 'Backspace' || event.key === "Delete" || matchHotKey("⌘X", event) || matchHotKey("⌘v", event)) {
|
|
|
+ vditor.oldSelectContent = '';
|
|
|
+ }
|
|
|
+ //如果通过键盘选中内容,获取oldSelectContent
|
|
|
+ const selectText = getSelectText(vditor[vditor.currentMode].element);
|
|
|
+ if(selectText.trim()) {
|
|
|
+ vditor.oldSelectContent = selectText
|
|
|
+ }
|
|
|
|
|
|
if (vditor.currentMode === "sv") {
|
|
|
if (mdProcessKeydown(vditor, event)) {
|
|
@@ -235,7 +244,8 @@ export const hotkeyEvent = (vditor: IVditor, editorElement: HTMLElement) => {
|
|
|
|
|
|
export const selectEvent = (vditor: IVditor, editorElement: HTMLElement) => {
|
|
|
editorElement.addEventListener("selectstart", (event: Event & { target: HTMLElement }) => {
|
|
|
- editorElement.onmouseup = () => {
|
|
|
+ const mouseup = (e: Event)=> {
|
|
|
+ e.stopPropagation(); //阻止冒泡
|
|
|
setTimeout(() => { // 鼠标放开后 range 没有即时更新
|
|
|
const selectText = getSelectText(vditor[vditor.currentMode].element);
|
|
|
if (selectText.trim()) {
|
|
@@ -255,7 +265,10 @@ export const selectEvent = (vditor: IVditor, editorElement: HTMLElement) => {
|
|
|
vditor.wysiwyg.hideComment();
|
|
|
}
|
|
|
}
|
|
|
+ vditor.oldSelectContent = selectText.trim();
|
|
|
});
|
|
|
- };
|
|
|
+ }
|
|
|
+ editorElement.onmouseup = mouseup
|
|
|
+ document.onmouseup = mouseup
|
|
|
});
|
|
|
};
|