【问题标题】:inconsistent line ending behavior on firefox in windowswindows中firefox上的行尾行为不一致
【发布时间】:2011-06-15 11:52:12
【问题描述】:

我们遇到了一个真正奇怪的问题,当我们发布一个帖子时,行结尾是\r\n,但是当我们使用 javascript 提取值时,它只是得到\n。这会导致问题,因为对于我们的系统,create 将执行正常的表单发布,而更新将从表单中提取值以构建 ajax 请求。稍后,我们对给定字段进行字符串比较,并看到\r 存在或不存在之间的这种奇怪混合。

IE 处理得很好(总是\r\n),Windows 上的 FF 将使用\r\n 提交,而在 javascript 中只会报告\n。真正奇怪的是,在 linux 上,firefox 和 chrome 都会使用\r\n 发布,而document.getElementById('text-area-id').value 将始终只显示\n

这是 HTTP 规范中尘土飞扬的角落还是类似的东西?浏览器是否实现了这一点,以便 Windows 服务器不会死?有没有办法解决它,然后对每个领域进行消毒?我希望 JS 和 HTTP POST 的行为方式相同,并在它们碰巧所在的任何系统上使用系统默认值。

【问题讨论】:

    标签: javascript windows http firefox newline


    【解决方案1】:

    \r 显然是 DOM 中的非法字符,这就是为什么您不会从脚本中看到它的原因。当您设置 textarea 的值时,Firefox 会将平台换行符转换为 \n。另一方面,在提交表单时认为需要使用 HTTP 换行标准,显然是\r\n。所以它会在发送表单之前将它们全部转换。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-19
      • 1970-01-01
      相关资源
      最近更新 更多