我有一個可以理解的div,它的內容在每個文本更改後通過javascript進行編輯(textchange.js),比如添加html標籤(只有span標籤用於更改某些詞的顏色),並在這裏和那裏添加或刪除一些空格,但是我的問題是,由於內容在用戶編輯時正在改變,所以在每次按鍵之後插入符都會改變其位置,這使得幾乎不可能寫出單個單詞。 我現在正在尋找一種方法來防止這種跳躍,我已經想過添加一個特殊的字符,在編輯它之前,不會將它用作插入符號位置處的一種標記,它完成後,將插入符號放回到這個位置,但由於我正在使用正則表達式很多(每個文本更改後大約25次),這個特殊字符幾乎會毀掉它們中的每一個,我將不得不添加類似\x40?
每一個地方,這不會好看,並明確所有:在通過jscript編輯內容後保留插入符號位置
/\s<span class="b0">hello\sworld</span>/g
到:
/\s\x40?<span class="b0">\x40?h\x40?e\x40?l\x40?l\x40?o\x40?\s\x40?w\x40?o\x40?r\x40?l\x40?d\x40?</span>/g
我不知道是否有幫助,但這裏是內容如何改變的例子(每按一次鍵):
foo +++ <span class="c3">bar</span> - baz -<span class="c0">qux</span>
到:
<span class="c1">foo</span> + <span class="c3">bar</span> - <span class="c1">baz</span> * <span class="c0">qux</span>
我會爲每一個建議感激,提示或暗示如何解決這個問題,或者更好的方式來做這件事情。
謝謝:)
[這個問題](http://stackoverflow.com/questions/2871081/jquery-setting-cursor-position-in- contenteditable-div)討論如何設置位置。搞清楚把它放在哪裏完全是另一招 – Joe