Liyuan Li 5 years ago
parent
commit
71ffbaf995
2 changed files with 21 additions and 17 deletions
  1. 1 0
      CHANGELOG.md
  2. 20 17
      src/ts/util/fixBrowserBehavior.ts

+ 1 - 0
CHANGELOG.md

@@ -51,6 +51,7 @@
 
 ### v3.0.9 / 2020-04-0x
 
+* [264](https://github.com/Vanessa219/vditor/issues/264) table at IR mdoe `修复缺陷`
 * [253](https://github.com/Vanessa219/vditor/issues/253) 所见即所得复制粘贴问题 `修复缺陷`
 
 ### v3.0.8 / 2020-04-02

+ 20 - 17
src/ts/util/fixBrowserBehavior.ts

@@ -548,23 +548,25 @@ export const fixTable = (vditor: IVditor, event: KeyboardEvent, range: Range) =>
         }
 
         // 删除当前行
-        if (cellElement.tagName === "TD" && matchHotKey("⌘--", event)) {
-            const tbodyElement = cellElement.parentElement.parentElement;
-            if (cellElement.parentElement.previousElementSibling) {
-                range.selectNodeContents(cellElement.parentElement.previousElementSibling.lastElementChild);
-            } else {
-                range.selectNodeContents(tbodyElement.previousElementSibling.lastElementChild.lastElementChild);
-            }
+        if (matchHotKey("⌘--", event)) {
+            if (cellElement.tagName === "TD") {
+                const tbodyElement = cellElement.parentElement.parentElement;
+                if (cellElement.parentElement.previousElementSibling) {
+                    range.selectNodeContents(cellElement.parentElement.previousElementSibling.lastElementChild);
+                } else {
+                    range.selectNodeContents(tbodyElement.previousElementSibling.lastElementChild.lastElementChild);
+                }
 
-            if (tbodyElement.childElementCount === 1) {
-                tbodyElement.remove();
-            } else {
-                cellElement.parentElement.remove();
-            }
+                if (tbodyElement.childElementCount === 1) {
+                    tbodyElement.remove();
+                } else {
+                    cellElement.parentElement.remove();
+                }
 
-            range.collapse(false);
+                range.collapse(false);
+                execAfterRender(vditor);
+            }
             event.preventDefault();
-            execAfterRender(vditor);
             return true;
         }
 
@@ -646,11 +648,12 @@ export const fixTable = (vditor: IVditor, event: KeyboardEvent, range: Range) =>
                 range.collapse(true);
             }
             for (let i = 0; i < tableElement.rows.length; i++) {
-                if (tableElement.rows.length === 1) {
+                const cells = tableElement.rows[i].cells
+                if (cells.length === 1) {
                     tableElement.remove();
-                } else {
-                    tableElement.rows[i].cells[index].remove();
+                    break;
                 }
+                cells[index].remove();
             }
             execAfterRender(vditor);
             event.preventDefault();