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

我有一个文本框,我需要在Opera浏览器中设置文本框所需索引的焦点/光标。

工作演示

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

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

becoz以下代码片段

 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(); } } }