我有一个可在所有浏览器(包括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不可用”是什么意思,更具体地说,是否有任何原因会导致这种情况。
答案 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