【问题标题】:Open ExtJS app in Outlook - Outlook imitates IE7?在 Outlook 中打开 ExtJS 应用程序 - Outlook 模仿 IE7?
【发布时间】:2014-09-29 14:33:00
【问题描述】:

我有一个应该与 Outlook 2013 集成的 Web 应用程序,希望也与 Outlook 2010 集成。

在 Outlook 中,您可以拥有一个包含“默认网站”的文件夹,用于在我们的客户处获得各种乐趣。

但不是我们的应用程序,因为 - 仅在 Outlook 中 - 在 Ext 代码深处引发错误,在

if (Ext.isIE9m) {
    Element.prototype.getById = function (id, asDom) {
        var dom = this.dom,
            cacheItem, el, ret;

        if (dom) {
            // for normal elements getElementById is the best solution, but if the el is
            // not part of the document.body, we need to use all[]
            el = (useDocForId && DOC.getElementById(id)) || dom.all[id];

在最后一行,它说

0x800a138f - JavaScript 运行时错误:无法获取未定义或空引用的属性“ext-quicktips-tip-frame1MC”

在 IE11、IE10、IE9、IE8、FF24、FF37、Chrome 37 中一切正常,因为我使用的是<meta http-equiv="X-UA-Compatible" content="IE=Edge">。但这对 Outlook 没有帮助,它告诉我它是

Mozilla/4.0(兼容;MSIE 7.0;Windows NT 6.1;WOW64、Trident/7.0;SLCC2;.NET CLR 2.0.50727;.NET CLR 3.5.30729;Media Center PC 6.0;.NET4.0C;.NET4 .0E;微软 Outlook 15.0.4615)

我可以告诉 Outlook 使用最新安装的 IE 并相应地设置用户代理吗?

Outlook 是使用 IE7(或 IE7 渲染模式),还是只是提交了一个明显错误的用户代理,而 ExtJS 通过错误地假设每个通过 Ext.isIE9m 测试的浏览器都有特定的可用功能而落入坑中?

【问题讨论】:

  • 我面临同样的错误。你有什么解决办法吗?

标签: internet-explorer extjs outlook


【解决方案1】:

InternetExplorer 的 javascript 对象 document.documentMode 设置正确,但 ExtJS 无法正确评估它。

如果 Ext-more.js 包含以下内容,它就可以工作:

isIE7 = isIE && ((check(/msie 7/) && docMode != 8 && docMode != 9 && docMode != 10 && docMode != 11) || docMode == 7),
isIE8 = isIE && ((check(/msie 8/) && docMode != 7 && docMode != 9 && docMode != 10 && docMode != 11) || docMode == 8),
isIE9 = isIE && ((check(/msie 9/) && docMode != 7 && docMode != 8 && docMode != 10 && docMode != 11) || docMode == 9),
isIE10 = isIE && ((check(/msie 10/) && docMode != 7 && docMode != 8 && docMode != 9 && docMode != 11) || docMode == 10),
isIE11 = isIE && ((check(/trident\/7\.0/) && docMode != 7 && docMode != 8 && docMode != 9 && docMode != 10) || docMode == 11),

而不是

isIE7 = isIE && ((check(/msie 7/) && docMode != 8 && docMode != 9 && docMode != 10) || docMode == 7),
isIE8 = isIE && ((check(/msie 8/) && docMode != 7 && docMode != 9 && docMode != 10) || docMode == 8),
isIE9 = isIE && ((check(/msie 9/) && docMode != 7 && docMode != 8 && docMode != 10) || docMode == 9),
isIE10 = isIE && ((check(/msie 10/) && docMode != 7 && docMode != 8 && docMode != 9) || docMode == 10),
isIE11 = isIE && ((check(/trident\/7\.0/) && docMode != 7 && docMode != 8 && docMode != 9 && docMode != 10) || docMode == 11),

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多