在任意文本上使用execCommand应用样式

时间:2011-01-30 21:51:45

标签: javascript contenteditable execcommand

我知道如何对某些选定的文字执行execCommand,但有没有办法在我的contenteditable div中执行其他一些文字?

2 个答案:

答案 0 :(得分:1)

在IE中,是的。在其他浏览器中,没有。

所有主要的桌面浏览器都实现某种形式的document.execCommand(),它仅对用户选择起作用。在IE中,TextRange对象也有execCommand方法。例如,当用户将光标悬停在元素上时,以下内容将把元素的文本内容变为绿色:

<div id="test">Here is a test div</div>

<script type="text/javascript">
    var div = document.getElementById("test");
    div.onmouseover = function() {
        if (document.body.createTextRange) {
            var textRange = document.body.createTextRange();
            textRange.moveToElementText(div);
            textRange.execCommand("foreColor", false, "green");
        }
    };
</script>

答案 1 :(得分:0)

如果你不知道,.execCommand是一个IE应该避免的非标准的javascript函数。

如果您告诉我们您想要使用它,那么我们可以建议符合标准的替代方案。