【发布时间】:2025-11-28 18:05:02
【问题描述】:
我目前正在使用 IntelliJ IDEA 制作一个小的 HTML 覆盖,我希望由客户端处理(因为清漆缓存)。
所以我想做的是以下,它的工作(几乎):
将模板代码(html、jsp、el)放入变量中,相当简单:
<c:set var="overlayHtml"><c:import url="/directory/myOverlay.jsp" /></c:set>
然后我像这样将它插入到一个javascript中,并附加它:
var advertisementHtml = '${overlayHtml}';
$("body").append(advertisementHtml);
我的问题是我的来自 jsp 的 HTML 字符串中包含“新行”。像这样:
<div id="overlay">
<div>HERE IS MY OVERLAY</div>
<div>Another div</div>
</div>
而这个,javascript 无法处理,因此不会触发。我希望能够删除这些新行,以便 HTML 出现在一行中,如下所示:
<div id="overlay"><div>HERE IS MY OVERLAY</div><div>Another div</div></div>
问题出在 JSP 中,我需要在将变量注入 javascript 之前删除“新行”。
我尝试替换 HTML 新行十六进制和十进制 unicode,我尝试将 \n \r 替换为空字符串,但这也不起作用。我运气不好。
我怎样才能打败这些邪恶的新台词? (无需制作 IntelliJ cmets,或手动在一行中编写我的 HTML?)
【问题讨论】:
-
所以我做了一些调试。我选择记录从 jsp 获得的字符串的完整字符数组。这就是它变得奇怪的地方。我用双引号将每个字符括起来。是这样的: char: "" 但里面的空字符实际上也打破了我的日志文件中的行。
-
所以基本上我是个白痴。我的正则表达式中的换行符排序错误。当我在 \r 上进行替换,然后在 \n 上进行另一个替换时,一切正常。
标签: javascript html jsp intellij-idea