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
。因此,它在发送表单之前会将它们全部转换