【问题标题】:Newline problem when writing to HTML using JavaScript使用 JavaScript 写入 HTML 时出现换行问题
【发布时间】:2011-09-06 15:14:24
【问题描述】:

我使用 常规文本框 作为文本输入,用户可以在其中写入他们的 cmets。然后我使用 JQuery 和 JSON 将数据发送到服务器,然后将其插入数据库。

当我想显示这个文本时,我使用 jQuery 下载它准备 HTML 并在浏览器中显示它,但是没有新行。

如何保留用户输入的任何换行符,以便它们显示在浏览器中?

编辑:

问题是,当我执行警报 $('.detailsCommentContent').val() 时,我可以在警报窗口中看到换行符,但是当我将其作为 GET 参数传递时:

insertComment.aspx?id=10&content= " + $('.detailsCommentContent').val() "

然后在 url 中没有 newLine 的迹象 :(

【问题讨论】:

  • 也将其标记为可能的重复项
  • @Tim Post 不知道为什么当链接的问题在 c# 代码隐藏中执行时它被关闭为完全重复,而这个问题是使用 javascript 和稍微不同的场景执行的,因为它正在注入 HTML 和需要它在注入之前预先格式化。
  • @Kelsey 我将其视为更多以 HTML 本身为中心的问题(其他一些标记的用户也是如此)。由于我是唯一真正关闭它的投票,因此我将继续并重新打开问题。

标签: javascript jquery json


【解决方案1】:

只要这样回答:keep formatting entered in asp.net textbox (carriage return, new line, etc)

theStringYouWantToFormat.Replace(char.ConvertFromUtf32(13),"<br/>")

【讨论】:

    【解决方案2】:

    在使用 javascript 将 HTML 写入页面之前,请确保将所有换行符替换为 &lt;br /&gt; 标记。这是一个简单的字符串扩展,允许您使用 javascript (source):

    String.prototype.NewlineToBR = function() {
        return this.replace( /\r\n|\r|\n/g, br || '');
    }
    

    用法:

    var htmlString = newlineString.NewlineToBR();
    

    然后只需将新字符串插入到您的 HTML 中。

    【讨论】:

      【解决方案3】:

      你想在哪里显示文本?在文本区域中还是直接在页面上?

      如果在页面上,当从数据库中获取文本并将其打印到页面时,您必须将换行符转换为 &lt;br/&gt; 标签。

      【讨论】:

        【解决方案4】:

        我相信这取决于您使用的编码。 unicode 和 ascii 或类似的东西之间的区别。自从我从事这样的事情以来已经有一段时间了,但我认为它归结为两种选择。

        1. 在保存和加载时匹配编码(我们发现我们在一个上有 ascii,在另一个上有 unicode)。
        2. 保存时将所有换行符替换为任意值,并在加载时将其换回。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2010-12-12
          • 2016-08-04
          • 1970-01-01
          • 1970-01-01
          • 2010-11-18
          • 1970-01-01
          • 2011-06-18
          相关资源
          最近更新 更多