我正在生成一个供用户下载的文件,我想为其平台插入正确的换行符(\n
、\r
、或 \r\n
)。
我知道以下解决方案,但没有一个能完全解决我的问题:
- 查询
navigator.platform
或navigator.appVersion
。这些属性是 deprecated ,所以我不想依赖它们。 - Firefox 有具体的方法和 NodeJS .这些不适用,因为我正在创建一个网站,如果它适用于所有浏览器,我更愿意。
- 有很多方法可以找到the browser's newline characters ,但我对用户的平台感兴趣。 (它们是不同的:无论操作系统如何,Firefox 总是使用
\n
。)
最佳答案
经过一些调查,除了链接 mdn article,我找不到其他任何地方。 ,据说 navigator.platform
已弃用。
两者都是WHATWG specs和 W3 specs仍然将其包含在他们的生活水平中,并且没有关于弃用的说明。
实际上,w3 工作组 asked in January to Firefox team删除 navigator.oscpu
或 to make it an alias到 navigator.platform
,因为前者仅由该浏览器实现。
注意:mdn 页面声明它自 September 2, 2014 以来已被弃用。但我不确定这次编辑的动机是什么。
无论如何,我认为您可以安全地使用此 navigator.platform
属性来确定用户正在运行的操作系统(请记住,这些信息可能会被用户欺骗,但这是他们的问题不是吗?)
编辑
得到@Teoli 的回复,他在 2014 年进行了此编辑:
问题:
Why navigator.platform is marked as deprecated on https://developer.mozilla.org/en-US/docs/Web/API/NavigatorID/platform … ?
回答:
Because the spec asked browser vendor to put as few info in it to avoid fingerprinting. Putting '' would be spec. Don't rely on it.
关于javascript - 在 JavaScript 中确定操作系统换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32557170/