在iPhone / iPad 5.1中动态更改contentEditable状态时,execCommand失败

时间:2012-08-15 21:20:14

标签: javascript iphone ios ipad cordova

使用PhoneGap开发的iOS应用程序向用户显示大量HTML内容。用户可以将文本部分加粗,加下划线...,但不应添加或删除现有文本。

因此,我默认在HTML中将div的contentEditable设置为“false”。使用execCommand()格式化选定的文本。当用户选择文本并单击“粗体”按钮时,我在执行execCommand()之前将contentEditable更改为“true”,然后将其设置为“false”。 execCommand()使文本在包括Safari在内的所有桌面浏览器中都按预期加粗,但在iPhone / iPad中则不行。

非常感谢您的帮助。

示例代码:(我在iOS 5.1模拟器中测试过它)

<html>
<head>
<script>
    function bold()
    {
        var content = document.getElementById("content");
        content.contentEditable = true;
        //document.body.contentEditable = true;
        var result = document.execCommand('bold', false, null);
        content.contentEditable = false;
        //document.body.contentEditable = false;
    };
</script>
</head>
<body>
    <div id="content">this is the same text used for testing...</div>
    <br><br>
    <input type="button" value="bold" onclick="javascript: bold();"/>
</body>
</html>

0 个答案:

没有答案