脚本无法在Internet Explorer 11(IE11)上运行。

3

我有以下脚本

var dt = new Date();
year  = dt.getFullYear();
month = (dt.getMonth() + 1).toString().padStart(2, "0");
day   = dt.getDate().toString().padStart(2, "0");

document.getElementById("date").innerHTML = year+"."+month+"."+day;

这是一个显示当前日期(年、月、日)的简单脚本。

问题在于,由于某种原因,在 Internet Explorer 11 上无法正常工作(我已启用 JavaScript)。在像 Mozilla、Chrome 这样的浏览器上它可以正常工作。也许应该针对 ie11 重新编写脚本?


开发者工具控制台有任何错误吗?很可能是 padStart 方法 - 你需要自己编写它,或编写一个函数来实现它。 - Bravo
2个回答

4
问题在于您正在使用不受IE支持的.padStart方法。
在处理IE之前,您应该检查可用性 :)
作为一种选择,您可以使用MDN的polyfill或从这里。这是 padStart 的英文版本
如果您必须在生产中支持IE,我建议您检查转换器(以Babel为例)。它允许您使用现代代码而不必担心旧浏览器。缺点是配置可能有点棘手。但它确实值得一试。

1
更好的是,https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String/padStart - Bravo
1
由于某种原因 - 没有填充。 - Drag13
1
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String/padStart#see_also - 但我不是在谈论 polyfills,我是在谈论检查是否可以使用某些东西而不是使用 caniuse,这是..99%有效的 :p - Bravo
1
哦,我太蠢了 :) 我更喜欢使用 caniuse,因为你可以在不改变页面的情况下检查其他功能。对于 IE 来说,这非常有用,因为它支持的功能非常少。 - Drag13

3

Internet Explorer 11已经过时,不再支持padStart

当您在IE中调试代码时,在开发者工具中应该会看到有关其为undefined的错误消息。您有调试它,是吧?

它是一个遗留浏览器,Microsoft仅为过时的基于本地网络的Web应用程序提供支持。

如果您确实需要在新开发中支持IE11,MDN链接了一些polyfills。一般来说,您应该努力消除组织内的IE11。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接