如何在Opera的文本框上设置所需索引的焦点

时间:2009-09-16 08:58:57

标签: javascript jquery opera

我有一个文本框,我需要将焦点/光标设置在文本框的必需索引处 在歌剧浏览器中。

2 个答案:

答案 0 :(得分:0)

<强> Working Demo

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:光标的位置

答案 1 :(得分:0)

你的代码工作正常,但在歌剧中发生冲突。

becoz以下代码段

if(elem.createTextRange) {

也适用于opera,但createTextRange'll仅受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();
        }
    }
}