2011-10-25 28 views
0

使用如下命令:IE8的execCommand insertorderedlist忽略BR元素

this.document.execCommand("insertorderedlist", false, argument);

在大多數瀏覽器工作正常,但是,在IE瀏覽器(包括IE9),它包括了太多的文字。

所以,舉例來說,假設你有一個CONTENTEDITABLE DIV下面的文字,與位於作爲指定插入符號(包括了結構HTML):

test<br> 
<br>[caret] 
test2 

然後你執行execCommant,你最終在最開始的時候有一個子彈點,並且所有內容都作爲該子彈的一部分縮進。

像這樣:

<ol> 
<li> test<br> 
    <br>[caret] 
    test2 
</ol> 

這就是說,IE被包括周圍文本只由一個<br>分開。如果有容器元素(div或span),它可以正常工作。

+2

錯誤的推論。我建議你閱讀關於DOM範圍和什麼'startContainer','endContainer'(注意這些可能是元素或文本節點),'startOffset'和'endOffset'的意思。 MDN將是一個很好的起點:https://developer.mozilla.org/en/DOM/Range –

+0

我明白你在說什麼,謝謝。 – mtyson

回答

0

看來唯一真正的解決方案是不使用<br>分隔線。而是使用<div><p>