2014-02-20 71 views
0

我認爲這個問題很簡單,但我一直無法弄清楚。我使用更簡單的解決方案在Get caret position in contentEditable div的可用div中獲得了插入符號的位置,從而達到了停止點。我一直試圖獲得插入位置的行號,並且我已經完成了很多邏輯,但是因爲它處理一行的結尾與處理下一行的開始相同,所以已經證明幾乎不可能。使用瘦長庫獲取準確插入符位置在CONTENTEDITABLE DIV

因此,我一直試圖使用rangy庫來獲得插入位置,希望它適當地處理行的末尾(計算一行的結束爲小於下一個的開始),但我還沒有弄清楚如何讓它按照我想要的方式工作。我的代碼如下所示:

var sel = rangy.getSelection(); 
var range = sel.getRangeAt(0); 
var cursorPos = sel.focusOffset; 

看來,當我按回車鍵進入到一個新行(位置遞增1),但在此之後的caretPos再次在0在每行的開頭開始工作。有沒有辦法得到一個整體的光標位置,佔新行?要清楚的是,我並不是要求如何從粗線條得到線號,而只是插入點的位置。

謝謝,對不起,如果我失去了一些東西明顯。

回答

0

瘦長本身並沒有給你行號的能力。 sel.focusOffset您在問題中顯示的代碼是元素節點的子元素之間的偏移量或文本節點文本中的偏移量。如果看起來你對應一個行號,這只是偶然。

基本上,四肢修長不會發揮你提出這個問題的重要作用。無論能夠提供線路號碼的系統能夠獨立地工作,其中的任何一個

編輯迴應評論:你的問題說「希望它適當地把線的一端(計數線的末端作爲一個不到的未來,開始)」。由於談話的主題是Rangy,所以我將它理解爲「Rangy」。 Rangy沒有「行尾」的概念,所以不能以任何方式對待它們。

+0

對不起,我應該已經明確。我已經有了從插入符號/光標位置到行號的邏輯(它涉及從開始到插入位置的新行數。)我只需要一個更準確的插入位置,我希望可以聽到提供。這就是我想要從粗俗的位置得到的,而不是行號。是否有可能在不知道每一行都重新開始的可以理解的div中插入位置? – LiamD

+0

我編輯了我的答案。 – Louis

+0

嗯,沒關係。所以你說Rangy沒有辦法解決換行問題?因此,我發佈的代碼是一種正確的方式,可以在適合的div中獲得插入符號的位置(忽略線條問題)嗎? – LiamD

相關問題