diff --git a/src/controllers/inlineString.js b/src/controllers/inlineString.js
index 73b965d..d989f26 100644
--- a/src/controllers/inlineString.js
+++ b/src/controllers/inlineString.js
@@ -202,7 +202,7 @@ export function updateInlineStringFormat(cell, attr, value, $input){
}
}
-export function enterKeyControll(){
+export function enterKeyControll(cell){
var w = window.getSelection();
if(w.type=="None"){
@@ -228,7 +228,12 @@ export function enterKeyControll(){
if($textEditor.length>0){
let startSpan = startContainer.parentNode;
- let startSpanIndex = $textEditor.find("span").index(startSpan);
+ if(startContainer.id=="luckysheet-rich-text-editor"){
+ startSpan = $(startContainer).find("span");
+ startSpan = startSpan.get(startSpan.length-1);
+ startOffset = startSpan.innerHTML.length;
+ }
+ // let startSpanIndex = $textEditor.find("span").index(startSpan);
if(range.collapsed===false){
range.deleteContents();
}
@@ -240,15 +245,48 @@ export function enterKeyControll(){
sleft = startContent.substring(s1, s2);
sright = startContent.substring(s2, startContent.length);
- let cont = "" + sleft + "\n" + sright + "";
- let spanIndex;
+
+ let spanIndex,cont;
if(startContainer.parentNode.tagName=="SPAN"){
- spanIndex = $textEditor.find("span").index(startSpan);
+ let textSpan = $textEditor.find("span");
+ spanIndex = textSpan.index(startSpan);
+ if((spanIndex==textSpan.length-1) && sright==""){
+ let txt = textSpan[spanIndex].innerHTML;
+ if(txt.substr(txt.length-1, 1)=="\n"){
+ cont = "" + sleft + "\n" + "";
+ }
+ else{
+ cont = "" + sleft + "\n\n" + "";
+ }
+
+ }
+ else{
+ cont = "" + sleft + "\n" + sright + "";
+ }
+
$(startSpan).replaceWith(cont);
}
else{
- spanIndex = 0;
- $(startSpan).html(cont);
+
+ let cssText = getFontStyleByCell(cell);
+ if(sright==""){
+ cont = "" + sleft + "\n\n" + "";
+ }
+ else{
+ cont = "" + sleft + "\n" + sright + "";
+ }
+
+ if(startContainer.id=="luckysheet-rich-text-editor"){
+ $(startSpan).replaceWith(cont);
+ let textSpan = $textEditor.find("span");
+ spanIndex = textSpan.length-1;
+ startOffset = textSpan.get(spanIndex).innerHTML.length-1;
+ }
+ else{
+ $(startSpan).html(cont);
+ spanIndex = 0;
+ }
+
}
selectTextContentCollapse($textEditor.find("span").get(spanIndex), startOffset+1);
diff --git a/src/controllers/keyboard.js b/src/controllers/keyboard.js
index 5356c00..c000684 100644
--- a/src/controllers/keyboard.js
+++ b/src/controllers/keyboard.js
@@ -307,7 +307,9 @@ export function keyboardInitial(){
let $inputbox = $("#luckysheet-input-box");
if((altKey || event.metaKey) && kcode == keycode.ENTER && parseInt($inputbox.css("top")) > 0){
- enterKeyControll();
+ let last = Store.luckysheet_select_save[Store.luckysheet_select_save.length - 1];
+ let row_index = last["row_focus"], col_index = last["column_focus"];
+ enterKeyControll(Store.flowdata[row_index][col_index]);
event.preventDefault();
}
else if (kcode == keycode.ENTER && parseInt($inputbox.css("top")) > 0) {
diff --git a/src/global/cursorPos.js b/src/global/cursorPos.js
index c01209e..29fd6a7 100644
--- a/src/global/cursorPos.js
+++ b/src/global/cursorPos.js
@@ -64,8 +64,10 @@ function selectTextDom(ele){
if (window.getSelection) {
let range = document.createRange();
range.selectNodeContents(ele);
- window.getSelection().removeAllRanges();
- window.getSelection().addRange(range);
+ if(range.startContainer && isInPage(range.startContainer)){
+ window.getSelection().removeAllRanges();
+ window.getSelection().addRange(range);
+ }
}
else if (document.selection) {
let range = document.body.createTextRange();
@@ -80,8 +82,10 @@ function selectTextContent(ele){
var content=ele.firstChild;
range.setStart(content,0);
range.setEnd(content,content.length);
- window.getSelection().removeAllRanges();
- window.getSelection().addRange(range);
+ if(range.startContainer && isInPage(range.startContainer)){
+ window.getSelection().removeAllRanges();
+ window.getSelection().addRange(range);
+ }
}
else if (document.selection) {
let range = document.body.createTextRange();
@@ -96,8 +100,10 @@ function selectTextContentCross(sEle, eEle){
var sContent=sEle.firstChild, eContent=eEle.firstChild;
range.setStart(sContent,0);
range.setEnd(eContent,eContent.length);
- window.getSelection().removeAllRanges();
- window.getSelection().addRange(range);
+ if(range.startContainer && isInPage(range.startContainer)){
+ window.getSelection().removeAllRanges();
+ window.getSelection().addRange(range);
+ }
}
}
@@ -105,13 +111,26 @@ function selectTextContentCollapse(sEle, index){
if (window.getSelection) {
let range = document.createRange();
var sContent=sEle.firstChild;
+ if(index>sContent.length){
+ index=sContent.length;
+ }
+ else if(index<0){
+ index = 0;
+ }
range.setStart(sContent,index);
range.collapse(true);
- window.getSelection().removeAllRanges();
- window.getSelection().addRange(range);
+ if(range.startContainer && isInPage(range.startContainer)){
+ window.getSelection().removeAllRanges();
+ window.getSelection().addRange(range);
+ }
+
}
}
+function isInPage(node) {
+ return (node === document.body) ? false : document.body.contains(node);
+}
+
export {
luckysheetRangeLast,
getCursortPosition,
diff --git a/src/global/formula.js b/src/global/formula.js
index ae18fba..ca3deea 100644
--- a/src/global/formula.js
+++ b/src/global/formula.js
@@ -888,14 +888,16 @@ const luckysheetformula = {
let $cell = _this.getrangeseleciton();
_this.searchFunctionCell = $cell;
+
+
if ($cell == null || $editer == null) {
return;
}
-
+ let inputContent = $editer.text();
let searchtxt = $cell.text().toUpperCase();
let reg = /^[a-zA-Z]|[a-zA-Z_]+$/;
- if (!reg.test(searchtxt)) {
+ if (!reg.test(searchtxt) || inputContent.substr(0, 1)!="=") {
return;
}
diff --git a/src/global/getRowlen.js b/src/global/getRowlen.js
index 82aee2c..3dcb276 100644
--- a/src/global/getRowlen.js
+++ b/src/global/getRowlen.js
@@ -338,7 +338,7 @@ function getCellTextInfo(cell , ctx, option){
for(let x=0;x