在Firefox中,您只需致电:
myInputTextField.selectionStart或myInputTextField.selectionEnd
获取输入框中所选文本的第一个和最后一个索引。
在IE中,我知道你可以调用document.selection.createRange()来调整选择。然而,对于我的生活,我没有找到任何代表选择中的字符偏移的值。
我错过了什么吗?有没有办法在IE中获得相同的值?
谢谢!
亚历
答案 0 :(得分:5)
从previous response到a very similar question的直接引用可以为您提供选择范围:
function getSelection(inputBox) {
if ("selectionStart" in inputBox) {
return {
start: inputBox.selectionStart,
end: inputBox.selectionEnd
}
}
//and now, the blinkered IE way
var bookmark = document.selection.createRange().getBookmark()
var selection = inputBox.createTextRange()
selection.moveToBookmark(bookmark)
var before = inputBox.createTextRange()
before.collapse(true)
before.setEndPoint("EndToStart", selection)
var beforeLength = before.text.length
var selLength = selection.text.length
return {
start: beforeLength,
end: beforeLength + selLength
}
}
答案 1 :(得分:0)
getSelectionOffset : function(argObject) {
if (typeof(argObject.contentWindow.getSelection) != 'undefined') { //Moz
return {
start: argObject.contentWindow.getSelection().getRangeAt(0).selectionStart,
end: argObject.contentWindow.getSelection().getRangeAt(0).selectionEnd
}
}
if (document.selection && document.selection.createRange) { //IE
var allText = argObject.contentWindow.document.selection.createRange().parentElement().innerText;
var selText = argObject.contentWindow.document.selection.createRange().text;
return {
start: allText.indexOf(selText),
end: allText.indexOf(selText) + selText.length
}
}
}