Ver código fonte

Merge pull request #53 from XR-stb/patch-1

修复了前端输入中文字符再删除会出现的bug
BLUELOVETH 2 anos atrás
pai
commit
2470a1555c
1 arquivos alterados com 9 adições e 8 exclusões
  1. 9 8
      web/index.js

+ 9 - 8
web/index.js

@@ -143,13 +143,14 @@ function term_init() {
           term.write(need_more_lines ? "... " : ">>> ");
           break;
         case '\u007F': // Backspace (DEL)
-          // Do not delete the prompt
-          if (term._core.buffer.x > 4) {    // '>>> ' or '... '
-            term.write('\b \b');
-            if (command.length > 0) {
-              command = command.substr(0, command.length - 1);
-            }
-          }
+          var cnt = term._core.buffer.x-4;
+          if(cnt<=0 || command.length==0) break;
+          // delete the last unicode char
+          command = command.replace(/.$/u, "");
+          // clear the whole line
+          term.write('\b \b'.repeat(cnt));
+          // re-write the command
+          term.write(command);
           break;
         default: // Print all other characters for demo
           if (e >= String.fromCharCode(0x20) && e <= String.fromCharCode(0x7E) || e >= '\u00a0') {
@@ -158,4 +159,4 @@ function term_init() {
           }
       }
     });
-}
+}