繁体   English   中英

使用JavaScript写入HTML时的换行问题

[英]Newline problem when writing to HTML using JavaScript

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

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

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

编辑:

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

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

那么在URL中没有newLine的迹象:(

就像这样回答: 保持格式在asp.net文本框中输入(回车,换行等)

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

在使用javascript将HTML写入页面之前,请确保将所有换行符替换为<br />标签。 这是一个简单的字符串扩展名,它将允许您使用javascript( source )来做到这一点:

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

用法:

var htmlString = newlineString.NewlineToBR();

然后只需将新字符串插入HTML。

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

如果在页面上,则从数据库获取文本并将其打印到页面时,必须将换行符转换为<br/>标记。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM