Javascript windows中firefox的行尾行为不一致
我们遇到了一个非常奇怪的问题,当我们写文章时,行的结尾是Javascript windows中firefox的行尾行为不一致,javascript,windows,http,firefox,newline,Javascript,Windows,Http,Firefox,Newline,我们遇到了一个非常奇怪的问题,当我们写文章时,行的结尾是\r\n,但是当我们使用javascript提取值时,它只会得到\n。这会引起问题,因为对于我们的系统来说,create将执行一个普通的表单post,而更新将从表单中提取值来构建ajax请求。稍后,我们将对给定字段进行字符串比较,并看到\r存在与否之间的奇怪混合 IE处理此罚款(始终\r\n),windows上的FF将随\r\n一起提交,并且在javascript中只报告\n。但真正奇怪的是,在linux上,firefox和chrome都会
\r\n
,但是当我们使用javascript提取值时,它只会得到\n
。这会引起问题,因为对于我们的系统来说,create将执行一个普通的表单post,而更新将从表单中提取值来构建ajax请求。稍后,我们将对给定字段进行字符串比较,并看到\r
存在与否之间的奇怪混合
IE处理此罚款(始终\r\n
),windows上的FF将随\r\n
一起提交,并且在javascript中只报告\n
。但真正奇怪的是,在linux上,firefox和chrome都会发布\r\n
,并执行文档。getElementById('text-area-id')。值
始终只显示\n
这是HTTP规范的某个尘土飞扬的角落还是类似的地方?浏览器是否实现了这一点,以便windows服务器不会死掉?有没有办法解决这个问题,然后对每个领域进行消毒?我所期望的是JS和HTTP POST的行为方式相同,并且在任何系统上都使用系统默认值。
\r
显然是DOM中的非法字符,这就是您无法从脚本中看到它的原因。当您设置textarea的值时,Firefox将平台换行符转换为\n
。另一方面,在提交表单时,它认为需要使用HTTP linebreak标准,这显然是\r\n
。因此,它在发送表单之前会将它们全部转换