2011-03-30 84 views
4

如何將插入符號(摺疊範圍)放置在空元素節點內。這段代碼應該可以工作,但它沒有。如何將插入符號放入空DOM元素節點

node = document.getElementById('some-empty-strong-node') 
range = document.createRange() 
range.selectNodeContents(node) 
window.getSelection().addRange(range) 

嘗試其他的技巧,比如添加一個空的文本節點的元素節點內或設置節點內的範圍開始和結束範圍內其他地方,然後摺疊範圍也不起作用。 Anoyone有一個想法?

回答

7

這是可能在Firefox和歌劇,但不可能在這兩個WebKit和IE < = 8

WebKit的具有長期的錯誤來解決這個:https://bugs.webkit.org/show_bug.cgi?id=15256用於一般情況下空元件殼體和https://bugs.webkit.org/show_bug.cgi?id=23189將脫字符放置在文本節點的開始位置。最後我聽說它可能需要幾年才能解決。

IE < = 8有圍繞選擇的各種問題,其中只有一個。 IE 9引入了DOM2範圍支持和HTML5選擇支持,你的代碼可能在IE 9中工作(我現在無法測試它)。

+1

已經添加了我的+1,但看到了您的編輯並決定快速測試IE 9 - 它的工作原理。 – 2011-03-30 16:20:43

+2

@安迪:非常好,我認爲可能。 WebKit現在變得非常惱人:已經過了三年半了。 – 2011-03-30 16:30:07

+0

這解釋了它。我正在嘗試鉻。謝謝。 – disc0dancer 2011-03-30 18:05:49