2009-08-28 64 views
3

我已经搜索了几天,但无法找到一个固体解决方案来获取选择开始/结束在Internet Explorer中,我试过thisthis解决方案。在IE中的选择范围

他们都涉及使用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 
} 
} 

编辑:

为了澄清这个问题,可以说,我的光标是在这句话的结尾:

“一些随机文本

<这里>”

一旦我用上面的代码选择的起点是:

“一些随机文本<这里>”

+0

@丹尼斯:你应该发布一个解答链接并接受它。 – 2009-08-31 15:42:58

回答

2

找到了解决办法here,其庞大的代码块,所以我不想让在此发布答案。