考慮下面的contenteditable div。如何在兩個div之間的contenteditable div中設置插入/光標位置。
<div contenteditable="true">
<div>bold text</div><div>bold text</div>
</div>
如果我定位兩個div之間光標並開始鍵入文本出來大膽而不是插入的兩個div之間一個新的文本節點。如果你打回家並嘗試在第一個div前輸入內容,也會發生同樣的情況。它成爲第一個div的一部分。
如果我檢查從選擇返回的範圍的startContainer,我得到的div的一個內容,而不是一個空的文本節點,如我所料。
看到這個http://jsfiddle.net/9ZZpX/3/
的問題是,爲什麼會發生這種情況?我如何選擇div之間的位置,以便在輸入內容時不會加粗? (很明顯,我可以添加一個空間,並且可以解決問題,但這非常難看。)
如果您在狀態更新框中輸入@mention,然後按HOME,則可以在Facebook上看到此功能正常工作。如果您輸入的文字不會突出顯示。
我已經能夠想到的唯一事情是攔截按鍵並以編程方式插入文本節點,但這看起來很難看。
我瘋狂地搜索,找不到任何引用記錄如何真的應該工作。顯然有一些我不明白的地方,而且這方面的文檔確實很少。我想要做的就是檢測光標何時進入這些div並跳過它,如果兩個div彼此相鄰,則光標跳轉到其中一個的div並渣土趕工)上什麼,我試圖做
更多信息:http://a-software-guy.com/2012/12/the-horrors-of-cursor-positioning-in-contenteditable-divs/
我爲文章upvoted。感謝記錄! –