[英]Determine OS newline in JavaScript
解析navigator.userAgent
可能是检测操作系统的合理可靠方法,因此可以检测使用哪个换行符。
可能会达到目的的方法-可能需要对已针对各个平台测试的UA字符串进行一些调整。
如果UA被欺骗,那也行不通。
function getLinebreak (){
var linebreaks = {
Windows: "\r\n",
Mac: "\n",
Linux: "\n"
}
for(key in linebreaks){
if(navigator.userAgent.indexOf(key) != -1){
return linebreaks[key];
}
}
return "\n";
}
注意:您可能可以安全地仅检查它是否为Windows,否则在大多数情况下返回\\ n
这样的事情在大多数情况下也可能适用:
function getLinebreak(){
if(navigator.userAgent.indexOf("Windows") != -1){
return "\r\n";
}
return "\n";
}
经过一番调查,除了链接的mdn文章之外,我找不到其他地方,据说navigator.platform
已被弃用。
WHATWG规范和W3规范仍将其包含在其生活标准中,并且没有关于弃用的说明。
实际上,w3工作组在一月份曾要求Firefox团队删除navigator.oscpu
或使其成为 navigator.platform
的别名 ,因为前者仅由此浏览器实现。
注意:mdn页面指出,自2014年9月2日起已弃用该页面,但我不确定是什么促使了此编辑。
无论如何,我认为您可以安全地使用此navigator.platform
属性来确定用户所运行的操作系统(请记住,这些信息可能会被用户欺骗,但这是他们的问题不是吗?)
得到了@Teoli的回应,他在2014年进行了此修改:
题 :
为什么在https://developer.mozilla.org/en-US/docs/Web/API/NavigatorID/platform上将navigator.platform标记为已弃用...?
答:
因为该规范要求浏览器供应商在其中添加尽可能少的信息以避免指纹。 放入“”将是规格。 不要依赖它
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.