13
還有就是HTML這樣的:恢復光標位置改變CONTENTEDITABLE後
<div contenteditable="true" class="value research-form thumbnail">
Some text here
</div>
和DIV的內容應動態地突出了一些話,而用戶類型,例如製造類似:
<div contenteditable="true" class="value research-form thumbnail">
Some text here <span style="background-color: yellow">highlight</div> it
</div>
<script>
$(document).ready(function() {
var input = $('#textarea').on('input', function (event) {
var newText = input.text().replace('highlight', '<span style="background-color: yellow">highlight</div>');
input.html($.parseHTML(newText));
});
});
</script>
但是有一個問題:當我刷新div中的文本時,光標在輸入文本的開始處移動。
改變contenteditable值後,有什麼辦法恢復光標位置嗎?或者,也許還有其他方式來獲得相同的效果?
嘗試保存光標位置(見http://stackoverflow.com/questions/4767848/get-caret-cursor-position-in-contenteditable-area-containing- html-content),然後在input.html(...)後面設置它(請參閱http://stackoverflow.com/questions/1181700/set-cursor-position-on-contenteditable-div)。 我認爲你在這裏還有其他問題:在你的例子中,每次編輯文本時,「高亮」單詞將被包裹在一個新的跨度中。在添加新跨度之前,可能應該用佔位符替換包裹的單詞,然後將佔位符替換回來。 – Qwerty 2014-10-01 10:52:17
如果您的解決方案符合您的期望,則應將其添加爲答案並將其選中。 http://stackoverflow.com/help/self-answer – 2016-01-27 17:10:34
@JasonSperske完成 – Tdm 2016-01-29 12:40:14