任何版本的Internet Explorer上的iNotes都在模仿IE9



我正在自定义iNotes(Notes web邮件客户端),使用javascript添加一些需要对外部源进行ajax调用的功能。在这样做的过程中,我发现Internet Explorer不会执行CORS(跨源)请求。错误是拒绝访问或其他一些安全错误,具体取决于调用方式。Chrome、FF和Safari都可以使用。

我发现了我认为是罪魁祸首的东西,iNotes添加了一个元标签来模拟IE9。

<META http-equiv="X-UA-Compatible" content="IE=EmulateIE9" /> 

对于CORS请求,IE9不支持XMLHttpRequest,而是必须使用XDomainRequest,它仅在IE8和IE9中受支持。由于它是在模仿IE9,XMLHttpRequest(或者jQuery.ajax调用)不起作用。

我一直找不到任何方法来删除那个元标签,我在邮件文件上搜索了一下,找不到与IE=EmulateIE9匹配的内容。我敢肯定,如果我真的删除了它,我会破坏iNotes中的一些东西。

我不想加载jQuery,但可能会为这个脚本加载,并包含moonscript插件,该插件在ie8和ie9浏览器中使用XDR。如果iNotes得到更新,它仍然可以工作。

还有人遇到这个问题并找到更好的解决方案吗?

Lothar Mueller为我指明了正确的方向。

Domino 9.0.1 Fix Pack 5添加了一个Forms9s.nsf,它允许您摆脱"Quirks模式"以实现IE向后兼容性。安装FP后,将安装新的forms9s.nsf文件,然后使用更新notes.ini

iNotes_WA_DefaultFormsFile=iNotes/Forms9s.nsf
iNotes_WA_FormsFiles=iNotes/Forms9s.nsf

它消除了IE的模拟标签。我仍然需要测试我的iNotes定制应用程序,但这为运行一些以前不起作用的IE功能提供了一个选项,例如来自iNotesExt_9.nsf等的Ajax请求。

最新更新