Javascript 如果对上一个文本进行编辑,光标将跳到文本末尾
我有一些什么工作的JavaScript代码。我不明白的是,为什么在我对文本中较早的内容进行编辑后,光标会跳到文本字段中文本的末尾 如果我对以前的一些文本进行编辑,是否有办法使光标保持在当前位置 以下是工作页面: …和特定于JS的代码Javascript 如果对上一个文本进行编辑,光标将跳到文本末尾,javascript,text,cursor,field,Javascript,Text,Cursor,Field,我有一些什么工作的JavaScript代码。我不明白的是,为什么在我对文本中较早的内容进行编辑后,光标会跳到文本字段中文本的末尾 如果我对以前的一些文本进行编辑,是否有办法使光标保持在当前位置 以下是工作页面: …和特定于JS的代码 // This code checks for a certain keypress combo. For example cx, Cx, gx, Gx, etc... // The hard to type esperanto characters we aim
// 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;
}
}
//此代码检查某个按键组合。例如cx、cx、gx、gx等。。。
//我们希望插入的难以键入的世界语字符。
var世界语=[
['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;
函数更改字符(e){
var-KeyID=(window.event)?event.keyCode:e.keyCode;
if(KeyID==88)
{
var tmp=document.getElementById('TArea').value;
对于(var i=0;i,原因是您正在替换整个文本值。您需要在执行替换之前保存光标位置,然后重新设置。有关更多信息,请参阅本文:,如果您只是替换字符,而不是插入或删除
光标位置前超过一行的字符数,
您可以在开关之前读取tArea.scrollTop值,然后将其重置