IE11:TypeError:Intl不可用

时间:2019-04-02 05:48:15

标签: javascript

我有一个可在所有浏览器(包括IE11)上正常运行的角度应用程序。 但是,在某些情况下(仍然不确定为什么),IE将引发TypeError,这是由Angular CDK平台umd javascript引起的:

var hasV8BreakIterator = (typeof Intl !== 'undefined' && ((/** @type {?} */ (Intl))).v8BreakIterator);

最小化为:

o="undefined"!=typeof Intl&&Intl.v8BreakIterator

错误是:

  

TypeError:Intl不可用

一般来说,我的问题是“ TypeError:xxx不可用”是什么意思,更具体地说,是否有任何原因会导致这种情况。

1 个答案:

答案 0 :(得分:0)

已确认这是由于在Windows上安装KB4489881更新引起的。 该更新添加了一些逻辑代码片段以检查计算机是否为Win8。

如果是Win 8,IE将避免加载Windows.Globalization.dll,而继续加载jsIntl.dll。

这对于IE11和带有清单文件的Weboc正常工作,该清单文件曾经将应用程序定位到Windows 8.1或Windows 10。 ``但是,如果weboc没有指定的清单文件,则即使在Windows 8.1或Windows 10上运行,版本检测也将以Windows 8版本(6.2.0.0)返回。

下面的文章澄清了您需要做什么的问题:

针对Windows定位应用程序 https://docs.microsoft.com/en-us/windows/desktop/SysInfo/targeting-your-application-at-windows-8-1

另外,有针对性的问题出现在有角度的包装上:https://github.com/angular/material2/pull/15693