我有一段Javascript代码,上面写着
var timeStamp = new Date().toLocaleTimeString()
它已经工作了几个月。然后,昨天(2016年10月16日),运行该代码的用户引发了错误
意外调用方法或属性访问
为此,以及使用toLocaleDateString
的类似行。
该用户似乎正在运行Microsoft Edge / Windows 10.他们说过去他们已成功访问该网站。用户代理字符串
Mozilla / 5.0(Windows NT 10.0)AppleWebKit / 537.36(KHTML,与Gecko一样)Chrome / 51.0.2704.79 Safari / 537.36 Edge / 14.14393
与我的Edge / Windows 10相同,它可以正常工作。
他们显然启用了JavaScript执行,因为代码随后调用了onerror代码,该代码将JS遇到的错误副本写入服务器日志文件中,但我无法理解为什么我们会抛出原始错误。在我的系统上,新的Date()。toLocaleDateSTring()提供了预期的结果(我知道结果中包含的未打印字符)
任何人都知道在这个网站上发生了什么让它在这里失败了吗?
更多信息:我设法在目标用户的系统上运行一些测试JavaScript,并让他们向我发送结果。
var dateobj = new Date()
dateobj.toString()包含一个带有时间和日期的合理格式的字符串。
dateobj.toLocaleTimeString()
失败。然而
"toLocaleTimeString" in dateobj
返回true,
typeof dateobj.toLocaleTimeString
是“功能”。
那为什么我不能打电话给它呢?
它在我的系统上以相同的规范运行正常(意思是:用户代理字符串匹配 - 以及导航器对象的其他输出)。我检查过他们没有安装任何Edge扩展。还有什么可以影响这个?
Monathan
UPDATEED
在目标Edge浏览器的JavaScript控制台中尝试了一些事情......这很奇怪 - 它不会执行它 - 但它是一个函数..?
x =新日期()
[日期] 2016年10月26日星期三10:18:30 GMT + 0100(GMT日光时间)
Y = x.toLocaleDateString()
错误
x.toLocaleDateString
是一个功能......
(有关实际细节,请参阅Screenshot)