javascript - 在 JavaScript 中确定操作系统换行符

标签 javascript newline

我正在生成一个供用户下载的文件,我想为其平台插入正确的换行符(\n\r、或 \r\n)。

我知道以下解决方案,但没有一个能完全解决我的问题:

  • 查询 navigator.platformnavigator.appVersion。这些属性是 deprecated ,所以我不想依赖它们。
  • Firefox 有具体的方法和 NodeJS .这些不适用,因为我正在创建一个网站,如果它适用于所有浏览器,我更愿意。
  • 有很多方法可以找到the browser's newline characters ,但我对用户的平台感兴趣。 (它们是不同的:无论操作系统如何,Firefox 总是使用 \n。)

最佳答案

经过一些调查,除了链接 mdn article,我找不到其他任何地方。 ,据说 navigator.platform 已弃用。

两者都是WHATWG specsW3 specs仍然将其包含在他们的生活水平中,并且没有关于弃用的说明。

实际上,w3 工作组 asked in January to Firefox team删除 navigator.oscputo make it an aliasnavigator.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.

Link to the mentioned specs request.

关于javascript - 在 JavaScript 中确定操作系统换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32557170/

相关文章:

php - 压缩 HTML 标记中属性之间的空格

Javascript/n 显示为字符串的一部分

go - 在Linux/macOS终端中从Go程序打印并使用回车符时,清除其余行

javascript - React Internet Explorer 11 渲染不可变集合错误的映射结果

javascript - 使用forever时从 Node 服务器发送电子邮件失败

c++ - 使用 cin 处理空白并返回(换行符)

c# - 在 C# 中用 ""替换新行

javascript - 将对象插入数组会删除而不是添加

Chrome/Firefox 中的 Javascript 内存使用和调试(雷区)

javascript - 为什么我的 JavaScript 没有加载到 Bootstrap 选项卡中?