2013-06-29 61 views
2

我正在構建一個簡單的在線文檔編輯器。在這個編輯器中,我希望將文本分成多個頁面,每個頁面都是可以理解的div。在可編輯div中可靠地獲取和設置光標/插入符的位置

我想出了一個基本的算法來做到這一點。本質上,我檢查當前焦點的div,看它是否有比WORDS_PER_PAGE常數更多的單詞。如果確實如此,則將該頁面的最後一個詞放在下一頁的開頭。然後在下一頁上執行相同的檢查,然後在下一頁上執行相同的檢查,直到到達頁面的末尾。當被按下的鍵是刪除/退格鍵時,執行類似的檢查。

現在這個算法並不完美(每個頁面的高度取決於詞的長度),但它適合我的需求就好了。真正搞砸我的東西是設置光標位置並獲取這些可編輯div的光標位置。我想要的是一個函數getCursor (element),它將返回光標偏移的字符數,而setCursor (element, n)將把光標置爲n個字符的偏移量。

我不給一個廢話關於IE < 9所以我不需要一個不可靠的解決方法。對於這個問題,我也不能使用Rangy圖書館或任何其他圖書館。我試着用範圍和選擇對象搞亂,但我什麼也沒有做。有沒有人對我應該如何攻擊這個問題有任何想法或建議?

回答

相關問題