我的 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', ....)
方法调用,也需要调整为调用 initEvent('keypress', ....)
适用于 IE11+。
加入必要的检测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的合成事件的无效使用。
关于javascript - 如何解决 CKEditor 在 IE 11 中的 javascript 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23142816/