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

为什么当我单击或键入文本区域时,CKEditor抛出javascript错误?,javascript,ckeditor,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; cha

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>

我的页面
$(函数(){
CKEDITOR.replace('my_text');
});
dfagasdf sdf

dasf asdf
单击或键入编辑区域时,我在控制台中看到多个错误:


您是否已手动将文档模式切换到“怪癖”?这可能是一个原因(尽管CKEditor应该在QM中工作,我知道它是这样的)。第二件事-用
包装
。我已经看到,它不时会出现问题(在表单中直接使用textarea也是不正确的)

编辑:页面正在怪癖模式下运行,因为您的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">

修复此错误后(停止抛出此错误)


另外,你不应该也使用ISO-8859-1编码,这是很差的,可能会导致问题。请改用UTF-8。

否,加载页面时默认使用怪癖。使用字段集标记包装文本区域时也会发生同样的情况。为什么将textarea嵌套在表单标记下是不正确的?在我14年的编程生涯中,我从来没有听说过。我刚刚检查过我是否记得XHTML中的这个规则。在HTML4.01和HTML5中是可以的,但在XHTML1.0中是一个错误。不知道为什么。不管怎样,我刚刚检查了是否抛出了此错误,因为您正在QM中运行页面。当我修复了DOCTYPE(在您的情况下是不正确的),一切都开始正常工作。感谢更新。我将尝试这些更改。我继承了大量非常旧的代码,所以我仍在清理它。您的DOCTYPE完全正确。我没有意识到DOCTYPE设置不正确。不幸的是,由于网站是如何建立的,而且使用了蹩脚的CSS,改变“怪癖”模式会提升IE8中网站的布局,这也是大多数用户正在使用的。现在,我将把编码更新为UTF-8,并启动一个新项目,分别用它更新DOCTYPE和CSS,因为客户端用户还没有升级到IE9。非常感谢。