解决JSP中JS赋值包含单双引号的转义问题

作者:小括号

时间:2026-10-27

浏览:180

本文介绍在JSP页面中通过JavaScript将后台拼接的HTML字符串赋值给DOM元素时,因字符串内含单双引号导致语法错误的解决方案。核心思路是在后台拼接HTML时,对内部单引号进行特殊转义处理,确保前端JS解析正确。

文章目录

JSP中JS赋值引号冲突问题

页面基于JSP技术构建,其中定义了一个名为lefttree的参数。



该参数由后台生成,其内容实际为一段HTML代码。


示例代码如下:

 
<div class="test" onclick="show('tt1','abc')">

在JSP页面中,需通过JavaScript将该值赋给指定的div元素。


具体实现代码如下:

 
<script type="text/javascript">
window.parent.document.getElementById('mptree').innerHTML='<%=lefttree%>';
</script>

由于变量lefttree内部同时包含单引号和双引号,而JS赋值语句外层使用了单引号,导致引号匹配冲突,解析结果变为:


错误示例代码如下:

 
'<div class="test" onclick="show('tt1','abc')">'

利用转义字符解决引号匹配错误

解决方案如下:



利用转义字符"/"进行处理。



在后台拼接lefttree时,调整引号转义格式,具体形式如下:



修正后的代码如下:

 
<div class="test" onclick="show(///'tt1///',///'abc///')">

其中:



前两个斜杠“//”用于在页面渲染时保留一个实际的斜杠字符。



第三个斜杠“/”用于对后续的单引号进行转义。



此时,网页中lefttree的实际值为:


最终代码如下:

 
<div class="test" onclick="show(/'tt1/',/'abc/')">

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章