gpt4 book ai didi

javascript - Intl.DateTimeFormat.format() 在 Edge 浏览器中失败?

转载 作者:行者123 更新时间:2023-12-03 02:20:04 24 4
gpt4 key购买 nike

这可能是一个不太可能的情况,但有其他人看到 Edge 在最新版本的 Edge (41.16299.1) 中从控制台运行 new Intl.DateTimeFormat().format() 时抛出一般错误吗? 248.0)在 Windows 10 上?到目前为止,我只能在一台特定用户的计算机上进行重现。它只是给出了 SCRIPT65535 错误。

enter image description here

最佳答案

所以我最终找到了原因并想出了一个解决方法。Windows 论坛上的一位用户发布了此相关问题,并在 Edge 用于格式化日期的 Windows 系统 DLL 中发现了根本原因:https://social.msdn.microsoft.com/Forums/windowsapps/en-US/dce1f04c-8c06-4398-93a5-127393a428dd/uwpccalendarchangetimezone-throws-eunexpected?forum=wpdevelop

本质上,这是由应该在 Windows 更新期间删除的注册表值引起的,但在某些系统上它仍然存在,因此该函数会抛出异常。为了验证这是同一原因,我删除了受影响系统上的此注册表值(它是一个过时的时区),它解决了问题:

HKEY_LOCAL_MACHINE\software\Microsoft\Windows NT\CurrentVersion\Time Zones\Armenian Standard Time

显然,我不想强​​迫我的用户更新他们的注册表,因此当我的应用程序启动时,如果 Intl api 在该浏览器中损坏,我会填充该部分:

// Only polyfill DateTimeFormat if the call fails
try {
new Intl.DateTimeFormat().format();
} catch (error) {
Object.defineProperty(Intl, 'DateTimeFormat', {
value: DateTimeFormatPolyfill,
});
}

关于javascript - Intl.DateTimeFormat.format() 在 Edge 浏览器中失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49197946/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com