Van 5 years ago
parent
commit
56ae076e5b
2 changed files with 21 additions and 1 deletions
  1. 1 1
      CHANGELOG.md
  2. 20 0
      src/ts/wysiwyg/index.ts

+ 1 - 1
CHANGELOG.md

@@ -37,12 +37,12 @@
 
 * [3](https://github.com/Vanessa219/vditor/issues/3) 编辑预览同步滚动改进 `enhancement`
 * [4](https://github.com/Vanessa219/vditor/issues/4) 添加支持思维导图的功能 `enhancement`
-* [46](https://github.com/Vanessa219/vditor/issues/46) how to add more cell without using the mouse
 
 ### v2.0.14 / 2020-01-08
 
 * [48](https://github.com/Vanessa219/vditor/issues/48) H6 回车 解析问题 `修复缺陷`
 * [47](https://github.com/Vanessa219/vditor/issues/47) <details> 改进 `功能改进`
+* [46](https://github.com/Vanessa219/vditor/issues/46) add row 添加快捷键 `引入特性`
 * [45](https://github.com/Vanessa219/vditor/issues/45) 为列表 indent 和 outdent 添加快捷键 `引入特性`
 * [44](https://github.com/Vanessa219/vditor/issues/44) Unorderlist + Link 会缩进 `修复缺陷`
 * [43](https://github.com/Vanessa219/vditor/issues/43) When copy & paste the link `修复缺陷`

+ 20 - 0
src/ts/wysiwyg/index.ts

@@ -339,6 +339,8 @@ class WYSIWYG {
                 afterRenderEvent(vditor);
 
                 event.preventDefault();
+                scrollCenter(this.element);
+                return;
             }
 
             // https://github.com/Vanessa219/vditor/issues/48
@@ -351,6 +353,24 @@ class WYSIWYG {
                 range.setStart(pElement, 0);
                 setSelectionFocus(range);
                 event.preventDefault();
+                scrollCenter(this.element);
+                return;
+            }
+
+            // https://github.com/Vanessa219/vditor/issues/46
+            const cellElement = hasClosestByMatchTag(range.startContainer, "TD") ||
+                hasClosestByMatchTag(range.startContainer, "TH");
+            if (!event.metaKey && !event.ctrlKey && !event.shiftKey && event.altKey && cellElement) {
+                let rowHTML = "";
+                for (let m = 0; m < cellElement.parentElement.childElementCount; m++) {
+                    rowHTML += "<td></td>";
+                }
+                cellElement.parentElement.insertAdjacentHTML("afterend", rowHTML);
+                range.setStart(cellElement.parentElement.nextElementSibling.firstChild, 0);
+                setSelectionFocus(range);
+                event.preventDefault();
+                scrollCenter(this.element);
+                return;
             }
             scrollCenter(this.element);
         });