0
我想在當前指針 位置添加文本到文本區域,這裏是爲PC的正常工作代碼:多行文本添加符號當前光標指針的Android
function getCursor(input){
var result = { start: 0, end: 0 };
if (input.setSelectionRange) {
result.start= input.selectionStart;
result.end = input.selectionEnd;
}
else if (!document.selection) { return 0; }
else if (document.selection && document.selection.createRange) {
var range = document.selection.createRange();
var stored_range = range.duplicate();
stored_range.moveToElementText(input);
stored_range.setEndPoint('EndToEnd', range);
result.start = stored_range.text.length - range.text.length;
result.end = result.start + range.text.length; //}
}
return(result);
}
function setCursor(txtarea, start, end){
if(txtarea.createTextRange) {
var range = txtarea.createTextRange();
range.move("character", start);
range.select();
} else if(txtarea.selectionStart) {
txtarea.setSelectionRange(start, end);
}
}
function superChar(){
start_tag ='"'
my_text = $('#codeText').get(0);
my_text.focus();
var scrtop = my_text.scrollTop;
var cursorPos = getCursor(my_text);
if (cursorPos.start==cursorPos.end) {
var nuCursorPos=cursorPos.start+start_tag.length;
my_text.value = my_text.value.substring(0,cursorPos.start) + start_tag + my_text.value.substr(cursorPos.start);
setCursor(my_text, nuCursorPos, nuCursorPos);
}
else {
var txt_pre=my_text.value.substring (0,cursorPos.start);
var txt_sel=my_text.value.substring(cursorPos.start, cursorPos.end);
var txt_aft=my_text.value.substring(cursorPos.end);
my_text.value = txt_pre + start_tag + txt_sel + end_tag + txt_aft;
var nuCursorPos=String(txt_pre + start_tag + txt_sel + end_tag).length;
setCursor(my_text, nuCursorPos, nuCursorPos);
}
if (scrtop) my_text.scrollTop=scrtop;
}
但在移動設備(機器人)它總是將符號添加到 文本的第一個字母。我搜索了它,但沒有找到任何結果。