HTML 如果从服务器发送到客户端,字符串会得到额外的换行符
HTML string gets extra newline character if sent from server to client
我在处理字符串时遇到问题。我有一些用 java 编写的代码,它将使用 xls 翻译器为我生成一些 html - 字符串形式。
我使用 spring 框架将此字符串传回我的 Web 代码,但是当字符串到达 java 脚本时,它失败并显示“无效或意外令牌错误”。此外,当字符串被写入控制台时,似乎字符串现在包含每个新标记的换行符。
对于我的 java 脚本,我真的需要 html 全部是一行。
这里有一些代码位:
try {
SimpleResultSet rs = dbClient.executeQuery("select MediaContent from call where id = " + callID);
if (rs.next()) {
media = rs.getString("MediaContent");
mimeType = rs.getString("MediaTypeID");
if(media.startsWith("<?xml")) {
trace.info("XSLT: " + xltString);
trace.info("Database XML: " + media);
media = Transform(media, xltString, response);
//trace.info("result HTML: " + media);
if (!media.isEmpty()) {
media = media.replaceAll("\n\r", "")
.replaceAll("\n", "")
.replaceAll(System.lineSeparator(), "");
}
}
//media = media.replaceAll("\"","\\\"");
}
} catch (DBException e) {
trace.warning("Failed to get call content media for call id = " + callID, e);
return media;
}
trace.info("cleaned HTML: " + media);
return media == null ? "" : media;
}
此时打印出清理后的痕迹HTML,显示字符串全部在一行上,没有任何换行符。然后将字符串传播到 ModelAndView,如下所示:
return new ModelAndView("media", "media", mediaStr);
在java脚本方面:
<script>
var contentString = "${media}";
document.getElementById("mediaContentIFrame").srcdoc = contentString;
它是 java 脚本端的 contentString 变量因无效或意外令牌错误而失败。
contentString 用于初始化 IFrame 的 srcdoc 属性。
您已经添加了两个检查 \r\n 和 \n.. 还要添加 \r 我希望它会开始工作:)
我在处理字符串时遇到问题。我有一些用 java 编写的代码,它将使用 xls 翻译器为我生成一些 html - 字符串形式。
我使用 spring 框架将此字符串传回我的 Web 代码,但是当字符串到达 java 脚本时,它失败并显示“无效或意外令牌错误”。此外,当字符串被写入控制台时,似乎字符串现在包含每个新标记的换行符。
对于我的 java 脚本,我真的需要 html 全部是一行。 这里有一些代码位:
try {
SimpleResultSet rs = dbClient.executeQuery("select MediaContent from call where id = " + callID);
if (rs.next()) {
media = rs.getString("MediaContent");
mimeType = rs.getString("MediaTypeID");
if(media.startsWith("<?xml")) {
trace.info("XSLT: " + xltString);
trace.info("Database XML: " + media);
media = Transform(media, xltString, response);
//trace.info("result HTML: " + media);
if (!media.isEmpty()) {
media = media.replaceAll("\n\r", "")
.replaceAll("\n", "")
.replaceAll(System.lineSeparator(), "");
}
}
//media = media.replaceAll("\"","\\\"");
}
} catch (DBException e) {
trace.warning("Failed to get call content media for call id = " + callID, e);
return media;
}
trace.info("cleaned HTML: " + media);
return media == null ? "" : media;
}
此时打印出清理后的痕迹HTML,显示字符串全部在一行上,没有任何换行符。然后将字符串传播到 ModelAndView,如下所示:
return new ModelAndView("media", "media", mediaStr);
在java脚本方面:
<script>
var contentString = "${media}";
document.getElementById("mediaContentIFrame").srcdoc = contentString;
它是 java 脚本端的 contentString 变量因无效或意外令牌错误而失败。 contentString 用于初始化 IFrame 的 srcdoc 属性。
您已经添加了两个检查 \r\n 和 \n.. 还要添加 \r 我希望它会开始工作:)