在我的項目中,我使用的是「contenteditable」div
。我正在嘗試使用此div
來創建自動完成功能。無論何時我輸入任何單詞,都應在不同的div
中看到一些建議。當我按ENTER
時,所選建議應替換爲「contenteditable」div
中輸入的文字。然後當我按SPACE
時,應該可以看到更多的建議。將插入符號的值設置到某個位置後不能得到插入符號位置值
有關更清晰的解釋,請參閱此fiddle。
在小提琴中,鍵入一些字母,然後按ENTER
,然後SPACE
。
每當我按SPACE
,都會顯示一個警告框(用於測試)。這告訴插入符號在「contenteditable」div
的當前位置。
但是,當我按ENTER
,然後SPACE
,脫字符的當前位置是錯誤的,即0
。
據我所知,如果我不使用placeCaretAtEnd()
函數,那麼我正確地得到插入位置。但在我的情況下,我想同時使用(getCaretPosition()
和placeCaretAtEnd()
)。
我正在使用Firefox進行檢查。 (在Chrome中,它似乎工作正常)
我需要一個適用於IE8 +,Chrome和Firefox的解決方案。請幫忙。
遇到在Firefox同樣的問題,我花了很長的時間才能找到問題所在。看起來像一個Firefox的錯誤..你終於找到一個簡單的解決方案? – jiyinyiyong 2013-05-29 14:24:38
@jiyinyiyong是檢查下面的答案。它完美地解決了我的問題。 :) – 2013-05-29 14:26:08
很高興找到它的作品。但是,當我將代碼複製爲'placeCaretAtEnd2()'函數並替換了舊版本時,它仍然以'0'來獲得caretPosition。我試圖'控制檯。記錄'我在'placeCaretAtEnd'之後'getcaretPosition'得到的結果,發現它是'0'而不是整數'> 0'。不管怎麼說,還是要謝謝你。你能告訴我它的工作原理的版本,所以我可以再試一次? – jiyinyiyong 2013-05-29 15:12:18