Van 5 年之前
父节点
当前提交
572e1e144c
共有 5 个文件被更改,包括 15 次插入6 次删除
  1. 1 0
      CHANGELOG.md
  2. 0 0
      src/js/lute/lute.min.js
  3. 1 1
      src/ts/types/index.d.ts
  4. 10 1
      src/ts/undo/WysiwygUndo.ts
  5. 3 4
      src/ts/wysiwyg/processKeydown.ts

+ 1 - 0
CHANGELOG.md

@@ -48,6 +48,7 @@
 ### v2.2.15 / 未发布
 
 * [202](https://github.com/Vanessa219/vditor/pull/202) 第一次进入代码块后 ctrl+a 无作用 `修复缺陷`
+* [201](https://github.com/Vanessa219/vditor/pull/201) table (windows firefox) `修复缺陷`
 * [200](https://github.com/Vanessa219/vditor/pull/200) copy in wysiwyg bug `修复缺陷`
 
 ### v2.2.14 / 2020-03-01

文件差异内容过多而无法显示
+ 0 - 0
src/js/lute/lute.min.js


+ 1 - 1
src/ts/types/index.d.ts

@@ -311,7 +311,7 @@ interface IVditor {
         redo(vditor: IVditor): void
         undo(vditor: IVditor): void
         addToUndoStack(vditor: IVditor): void
-        recordFirstWbr(vditor: IVditor): void,
+        recordFirstWbr(vditor: IVditor, event: KeyboardEvent): void,
         enableIcon(vditor: IVditor): void,
     };
     wysiwyg: {

+ 10 - 1
src/ts/undo/WysiwygUndo.ts

@@ -8,6 +8,7 @@ import {afterRenderEvent} from "../wysiwyg/afterRenderEvent";
 import {highlightToolbar} from "../wysiwyg/highlightToolbar";
 import {processCodeRender} from "../wysiwyg/processCodeRender";
 import {setRangeByWbr} from "../wysiwyg/setRangeByWbr";
+import {isSafari} from "../util/compatibility";
 
 class WysiwygUndo {
     private undoStack: patch_obj[][];
@@ -64,10 +65,18 @@ class WysiwygUndo {
         this.renderDiff(state, vditor, true);
     }
 
-    public recordFirstWbr(vditor: IVditor) {
+    public recordFirstWbr(vditor: IVditor, event: KeyboardEvent) {
         if (this.undoStack.length !== 1 || this.undoStack[0].length === 0) {
             return;
         }
+        if (navigator.userAgent.toLowerCase().indexOf("firefox") > -1 && event.key === "Backspace") {
+            // Firefox 第一次删除无效
+            return;
+        }
+        if (isSafari()) {
+            // Safari keydown 在 input 之后,不需要重复记录历史
+            return;
+        }
         getSelection().getRangeAt(0).insertNode(document.createElement("wbr"));
         const cloneEditorElement = document.createElement("pre");
         cloneEditorElement.innerHTML = vditor.wysiwyg.element.innerHTML;

+ 3 - 4
src/ts/wysiwyg/processKeydown.ts

@@ -1,7 +1,7 @@
 import {Constants} from "../constants";
 import {getSelectPosition} from "../editor/getSelectPosition";
 import {setSelectionFocus} from "../editor/setSelection";
-import {isCtrl, isSafari} from "../util/compatibility";
+import {isCtrl} from "../util/compatibility";
 import {scrollCenter} from "../util/editorCommenEvent";
 import {
     getTopList, hasClosestBlock,
@@ -47,9 +47,8 @@ export const processKeydown = (vditor: IVditor, event: KeyboardEvent) => {
     }
 
     // 添加第一次记录 undo 的光标
-    if (event.key.indexOf("Arrow") === -1 && !isSafari()) {
-        // Safari keydown 在 input 之后,不需要重复记录历史
-        vditor.wysiwygUndo.recordFirstWbr(vditor);
+    if (event.key.indexOf("Arrow") === -1) {
+        vditor.wysiwygUndo.recordFirstWbr(vditor, event);
     }
 
     // 仅处理以下快捷键操作

部分文件因为文件数量过多而无法显示