i'm having a textbox where i need to set focus/ cursor at required index of the textbox in opera browser.
问问题
3968 次
2 回答
0
function SetCaretPosition(elemId, caretPos) {
var elem = document.getElementById(elemId);
if(elem != null) {
if(elem.createTextRange) {
var range = elem.createTextRange();
range.move('character', caretPos);
range.select();
}
else {
if(elem.selectionStart) {
elem.focus();
elem.setSelectionRange(caretPos, caretPos);
}
else
elem.focus();
}
}
}
elemId:元素的id
caretPos:光标的位置
于 2009-09-16T09:05:54.633 回答
0
您的代码工作正常,但在歌剧中发生冲突。
因为下面的代码片段
if(elem.createTextRange) {
Opera 也是如此,但 createTextRange 仅受 IE 支持。
所以我对你的代码做了一点修改
function SetCaretPosition(elemId, caretPos) {
var elem = document.getElementById(elemId);
if (elem != null) {
if ($.browser.msie) {
if (elem.createTextRange) {
var range = elem.createTextRange();
range.move('character', caretPos);
range.select();
}
}
else {
if (elem.selectionStart) {
elem.focus();
elem.setSelectionRange(caretPos, caretPos);
}
else
elem.focus();
}
}
}
于 2009-09-17T09:56:28.660 回答