2011-10-25 32 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>