当我的脚本在Edge 15中运行以下代码时,我在JS控制台中看到了Intl not available
错误:
new Date().toLocaleDateString()
我对此有些困惑。它在Edge 14中的工作正常,我找不到对国际化API突然从Edge 15消失的参考。
我不确定这是否是测试它的正确方法,但是控制台中运行window.hasOwnProperty("Intl")
实际上返回true
。对我来说,这似乎表明intl实际上是。
任何具有更多JS技能的人都能告诉这里发生了什么?
确保您的JS代码未重新定义标准Map
类。
我们遇到了几乎相同的问题,但是使用Intl.Collator
对象。因此,我们无法使用String.prototype.localeCompare("...", "locale")
。
您可以在Edge 15和其他浏览器中查看此编码器以进行说明:https://codepen.io/kgorob/pen/pweawv。
P.S。我不确定您的问题是因为Map
课程特别是您正在重新定义的其他标准JS课程。
问题是因为Chakracore代码中的这些行。Intl.js
是JavaScript文件,用于执行各种国际化操作。由于使用Map
,因此在Intl.js
代码执行(懒惰地执行(之前对其进行了过度编写,这会导致问题。这应该很快解决。
正如KSP的答案所说,这是由INTL懒惰加载后的地图覆盖。因此,最简单的解决方法是在其他脚本运行之前将其迫使它早点初始化:
<html>
<head>
<script>Intl.DateTimeFormat</script>
...
这是脉轮仓库中的问题:https://github.com/microsoft/chakracore/chakracore/issues/3189