当我用另一个字符串替换字符串时,光标将移动到文本中字符串的开头。光标可以移动到最后而不是字符串的开头吗?
的index.jsp :
var val1=request.responseText;
var text=document.getElementById("para").innerHTML;
if(val1!="true")
{
var afterplace=text.replace("good",val1);
document.getElementById("para").innerHTML=afterplace;
}
更换后,光标出现在我希望它结束的单词的开头。
答案 0 :(得分:1)
考虑使用以下函数将光标设置在contenteditable
元素的末尾:
function setEndOfContenteditable(contentEditableElement)
{
var range,selection;
if(document.createRange)//Firefox, Chrome, Opera, Safari, IE 9+
{
range = document.createRange();
range.selectNodeContents(contentEditableElement);
range.collapse(false);
selection = window.getSelection();
selection.removeAllRanges();
selection.addRange(range);
}
else if(document.selection)//IE 8 and lower
{
range = document.body.createTextRange();
range.moveToElementText(contentEditableElement);
range.collapse(false);
range.select();
}
}
完整摘录:
var val1="testingtextgood";
var text=document.getElementById("para").innerHTML;
if(val1!="true")
{
var afterplace=text.replace("good",val1);
document.getElementById("para").innerHTML=afterplace;
document.getElementById("para").focus()
setEndOfContenteditable(document.getElementById("para"))
}
function setEndOfContenteditable(contentEditableElement)
{
var range,selection;
if(document.createRange)//Firefox, Chrome, Opera, Safari, IE 9+
{
range = document.createRange();
range.selectNodeContents(contentEditableElement);
range.collapse(false);
selection = window.getSelection();
selection.removeAllRanges();
selection.addRange(range);
}
else if(document.selection)//IE 8 and lower
{
range = document.body.createTextRange();
range.moveToElementText(contentEditableElement);
range.collapse(false);
range.select();
}
}
答案 1 :(得分:0)
使用此代码: -
var val1=request.responseText;
var text=document.getElementById("para").innerHTML;
if(val1!="true"){
var afterplace=text.replace("good",val1);
document.getElementById("para").innerHTML=afterplace;
document.getElementById("para").focus();
var val = document.getElementById("para").value;
document.getElementById("para").value = '';
document.getElementById("para").value = val;
}
它适用于我。