2011-03-21 30 views
1

做我有一些這方面,有什麼工作的JavaScript代碼。我無法弄清楚的是,爲什麼在我編輯文本中的某個內容之後,光標跳轉到文本字段中的文本末尾。光標跳到文本結束時,如果編輯以前的文本

有一些方法可以讓我保持在當前位置的光標如果我做編輯一些以前的文本?

這裏的工作頁面:http://rebol.vlexo.net/Programming/keys/esp/esp_keyboard.htm

...和JS特定代碼...

// This code checks for a certain keypress combo. For example cx, Cx, gx, Gx, etc... 
// The hard to type esperanto characters we aim to insert. 

var esperanto = [ 
    ['cx','\u0109'], ['gx','\u011D'], 
    ['hx','\u0125'], ['jx','\u0135'], 
    ['sx','\u015D'], ['ux','\u016D'], 

    ['Cx','\u0108'], ['Gx','\u011C'], 
    ['Hx','\u0124'], ['Jx','\u0134'], 
    ['Sx','\u015C'], ['Ux','\u016C'] 
]; 

document.onkeyup = changeChars; 

function changeChars(e) { 
    var KeyID = (window.event) ? event.keyCode : e.keyCode; 
    if(KeyID == 88) 
    { 
     var tmp = document.getElementById('TArea').value; 
     for (var i=0; i<esperanto.length; i++) { 
      re = new RegExp(esperanto[i][0],"g"); 
      tmp = tmp.replace(re,esperanto[i][1]); 
     } 
     document.getElementById('TArea').value = tmp; 
    } 
} 

回答

0

如果你是剛剛更換的人物,而不是插入或刪除 多了一行的價值字符的光標位置之前, 可以在開關前閱讀tArea.scrollTop值,並在之後重置。

相關問題