1
我有一個contentEditable DIV,當用戶按下某個鍵時,底層代碼將被處理並由更新後的代碼替換。唉,這會導致光標位置丟失。將光標移動到contentEditable DIV中的佔位符元素
但是,爲了保留光標位置,我在處理開始之前成功地將<span id="placeholder"></span>
插入到DIV的正確位置。這保留了遊標的預期位置,但現在我似乎無法設置範圍來選擇它。
這是我目前有:
function focusOnPlaceholder() {
var placeholder = document.getElementById('placeholder');
if(!placeholder) return;
var sel, range;
if (window.getSelection && document.createRange) {
range = document.createRange();
range.selectNodeContents(placeholder);
range.collapse(true);
sel = window.getSelection();
sel.removeAllRanges();
sel.addRange(range);
} else if (document.body.createTextRange) {
range = document.body.createTextRange();
range.moveToElementText(placeholder);
range.select();
}
}
任何幫助,將不勝感激,和一個跨瀏覽器的解決方案將是令人難以置信的:)
非破壞性的空間增加了竅門。現在去看看Rangy。謝謝! – claviska 2011-02-16 01:21:35