2009-08-28 65 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,其龐大的代碼塊,所以我不想讓在此發佈答案。