当我单击或键入文本区域时,为什么CKEditor会抛出javascript错误?

时间:2013-09-23 15:25:47

标签: javascript ckeditor

CKEditor 4.2.1(和4.1.2)是随机的(每次都不会发生)在执行非常基本/简单的交互时抛出JavaScript错误,例如单击编辑区域和/或在编辑区域中键入。

这是我的HTML:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
    <title>My Page</title>
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
    <script
        type="text/javascript"
        src="/assets/js/ckeditor_4.2.1_full/ckeditor.js"></script>
    <script type="text/javascript">
        $(function(){
            CKEDITOR.replace('my_text');
        });
    </script>
</head>
<body>
    <form method="post">
        <textarea name="my_text">dfagasdf sdf<br /><br />dasf asdf</textarea>
    </form>
</body>
</html>

点击或输入编辑区域时,我在控制台中看到多个错误:

IE9 Console

1 个答案:

答案 0 :(得分:3)

您是否已手动将文档模式切换为Quirks?这可能是一个原因(虽然CKEditor应该在QM中工作,我知道它确实如此)。第二件事 - 用<textarea><fieldset>包裹<p>。我已经看到它不时会出现问题(并且直接在表单中使用textarea也是不正确的。)

编辑:页面在Quirks模式下运行,因为您的DOCTYPE不正确。你应该:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
        "http://www.w3.org/TR/html4/loose.dtd">

而不是:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

修好后,IE停止抛出此错误。

PS。您不应该使用ISO-8859-1编码,这种编码很差并且可能导致问题。请改用UTF-8。