2011-03-04 86 views
0

我需要選擇一個小小的mce節點,我正在嘗試下面的代碼。它工作在非IE瀏覽器,但IE瀏覽器提示錯誤的 - 錯誤:對象不支持此屬性或方法selectNode()不能在IE8中工作

碼 -

   rng = ed.selection.getRng(); 
       rng.selectNode(tn); 

第二行導致錯誤。有沒有其他IE兼容的方法呢?

回答

0

其原因是您獲得的不同範圍對象。在FF中,您會看到一個對象,它提供了幾個功能,如selectNode()。 IE範圍僅向您顯示僅包含屬性的textrange對象。

解決這個很簡單:

// true is important here - causes getRng to return a DOM Range and not a text range (IE) 
rng = ed.selection.getRng(true); 
rng.selectNode(tn); 
+1

selectNode未在TextRange對象的方法中列出。我測試並發現,儘管它沒有產生任何錯誤,但它不能按需要工作。謝謝 – KutePHP 2011-03-04 12:26:40

+0

這就是我在我的回答中所說的。當您使用getRng(true)時,您將收到一個DOM範圍而不是文本範圍!這是你想要的。 – Thariama 2011-03-04 12:32:38

0

我讀到TextRange對象,並能夠做什麼,我打算。我想將光標放在一個範圍內。我可以使用TextRange對象的屬性和方法如下做到這一點 -

range.moveToElementText (node); //node is the span in which I wanted to place my cursor 
range.select(); 

moveToElementText - 對齊當前TextRange對象到指定元素的文本內容的起點和終點。我添加了一個nbsp;跨度和上面的代碼可以取代它,由我的脫字符。

+0

爲什麼然後你問關於selectNode函數,而不是關於脫字符的位置? – Thariama 2011-03-04 13:23:08