如何解决IE 11中CKEditor的javascript错误



我的asp.net网站使用CKEditor 3.5.3。虽然它在所有其他浏览器上都能正常工作,但它在IE 11中出现了以下错误:

JavaScript runtime error: NotSupportedError
N=F.$.createEvent('KeyEvents')

看来对于IE 11,我们必须使用CKEditor 4.3.4版本。我想知道是否有任何修复javascript错误的方法,因为我现在不想升级。

我对升级的主要不情愿,除了时间之外,最新版本没有旧版本的asp.net应用程序使用的dll。

我也遇到了同样的问题,我不想升级整个CKE控件,所以我通过调整压缩的ckeditor.js中的代码来检查IE 11或更高版本,从而解决了这个问题。

基本上,createEvent('KeyEvents')对IE11不再有效,需要将其更改为createEvent('Events')

在调用createEvent之后,将有一个initKeyEvent('keypress', ....)方法调用,该方法也需要调整为调用IE11+的initEvent('keypress', ....)

在放入必要的条件语句来检测IE11之后(在下面的示例中使用dojo),调整后的CKE JS如下:

O=G.$.createEvent(dojo.render.html.ie >= 11 ? 'Events' : 'KeyEvents');
if(dojo.render.html.ie >= 11)
    O.initEvent('keypress',true,true,F.$,false,false,false,false,0,32);
else
    O.initKeyEvent('keypress',true,true,F.$,false,false,false,false,0,32);

上面的JS代码可能与您的不同,但该示例仍然适用于IE11合成事件的无效使用。

他们发布了新版本3.6.6.2

试试看:http://download.cksource.com/CKEditor/CKEditor.NET/CKEditor.NET%203.6.6.2/ckeditor_aspnet_3.6.6.2.zip

您不需要更新DLL,只需下载并用新文件夹替换旧的ckeditor文件夹(如果您以前更改过config.js文件,则可能需要保留它)。

下载链接:http://download.cksource.com/CKEditor/CKEditor/CKEditor%204.4.3/ckeditor_4.4.3_full.zip

这两个回复对我都不起作用。相反,我添加了:"X-UA-Compatible"content="IE=8"到我的_Layout.cshtml文件。这解决了错误,尽管我确信这样做会产生一些技术债务。这是一个元标签。这个标签没有降价。

最新更新