我有這個JSFiddle我試圖實現this post中描述的內容。然而,令人驚訝的是我的代碼不起作用,我只是無法弄清楚爲什麼。聚焦並將光標置於contenteditable div的末尾
爲了以防萬一,我在這裏將相同的代碼放在了stackoverflow中。
$(document).ready(function(){
focusAndPlaceCaretAtEnd($('#test'));
});
function focusAndPlaceCaretAtEnd(el) {
el.focus();
if (typeof window.getSelection != "undefined"
&& typeof document.createRange != "undefined") {
var range = document.createRange();
range.selectNodeContents(el);
range.collapse(false);
var sel = window.getSelection();
sel.removeAllRanges();
sel.addRange(range);
} else if (typeof document.body.createTextRange != "undefined") {
var textRange = document.body.createTextRange();
textRange.moveToElementText(el);
textRange.collapse(false);
textRange.select();
}
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="test" contenteditable="true" placeholder="">
Focus and place the cursor to the end
</div>
最有可能,有我的代碼中一些愚蠢的錯誤。任何人都可以拯救我的大腦提供這個暗示嗎?
您的代碼片段有錯誤。你確定你不想編輯那些讓我們確切知道真正的錯誤是什麼嗎? (當然,如果這是代碼片段中的錯誤,那可能是您的第一個線索) –