使用JavaScript写入HTML时的换行符问题
我正在使用常规文本框作为文本输入,用户在其中写入他们的评论。然后,我使用JQuery和JSON将数据发送到服务器,然后将其插入数据库 当我想显示这个文本时,我使用jQuery下载它,准备HTML并在浏览器中显示它,但是没有新行 如何保留用户输入的任何新行,以便它们显示在浏览器中 编辑: 问题是,当我执行警报$('.detailsCommentContent').val()时,我可以在警报窗口中看到换行符,但当我将其作为GET参数传递时: insertComment.aspx?id=10&content=“+$('.detailsCommentContent').val()”使用JavaScript写入HTML时的换行符问题,javascript,jquery,json,Javascript,Jquery,Json,我正在使用常规文本框作为文本输入,用户在其中写入他们的评论。然后,我使用JQuery和JSON将数据发送到服务器,然后将其插入数据库 当我想显示这个文本时,我使用jQuery下载它,准备HTML并在浏览器中显示它,但是没有新行 如何保留用户输入的任何新行,以便它们显示在浏览器中 编辑: 问题是,当我执行警报$('.detailsCommentContent').val()时,我可以在警报窗口中看到换行符,但当我将其作为GET参数传递时: insertComment.aspx?id=10&cont
然后在url中没有换行符:(您想在哪里显示文本?在文本区域还是直接在页面上
如果在页面上,当从db获取文本并将其打印到页面上时,您必须将换行符转换为标签。只需执行以下操作:
theStringYouWantToFormat.Replace(char.ConvertFromUtf32(13),“
”)
在使用javascript将HTML写入页面之前,请确保使用
标记替换所有换行符。下面是一个简单的字符串扩展,允许您使用javascript()完成此操作:
用法:
var htmlString = newlineString.NewlineToBR();
然后将新字符串插入HTML。我认为这取决于您使用的编码。unicode和ascii之间的区别或类似的东西。我已经有一段时间没有做过类似的工作了,但我认为这归结为两个选项
将其标记为可能的副本too@TimPost不确定当链接的问题在c#codebehind中进行时,为什么它会被关闭为完全相同的副本,而这个问题是使用javascript和一个稍微不同的场景进行的,因为它正在注入HTML,并且需要在注入之前对其进行预格式化。@Kelsey我认为它更像是一个以问题为中心的问题围绕HTML本身(以及其他一些打了标记的用户),因为我是唯一一个真正投票关闭它的人,所以我将继续并重新打开这个问题。
String.prototype.NewlineToBR = function() {
return this.replace( /\r\n|\r|\n/g, br || '');
}
var htmlString = newlineString.NewlineToBR();