我的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的合成事件的无效使用。