我已经搜索了好几天,但找不到一个可靠的解决方案来在 Internet Explorer 中开始/结束选择,我试过了 this和 this解决方案。
它们都涉及使用 document.selection.createRange(),下面的代码可以很好地工作,但是如果你换行(按一次或多次回车)然后尝试得到选择开始/结束你将在你按下回车之前结束。据我所知,createRange() 不会选择最新的空换行符,我不希望代码变得太乱,所以是否有不同的解决方案?
function selecetion_range()
{
var range = document.selection.createRange();
var stored_range = range.duplicate();
stored_range.moveToElementText(textarea[0]);
stored_range.setEndPoint('EndToEnd', range );
return {
start: stored_range.text.replace(/\r/g,'').length - range.text.replace(/\r/g,'').length,
end: stored_range.text.replace(/\r/g,'').length
}
}
编辑:
为了澄清问题,假设我的光标位于这句话的末尾:
"some random text
<here>"
一旦我使用上面的代码,选择开始将是:
"some random text<here>"
最佳答案
找到解决方案 here ,这是一个巨大的代码块,所以我不想在这里发布答案。
关于javascript - IE中的选择范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1347015/