解决JSP中JS赋值包含单双引号的转义问题
作者:小括号时间:2026-10-27 23:01:30浏览:181
本文介绍在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/')">作者最新文章
JS语法错误会阻止加载吗?区分SyntaxError与资源加载失败
2026-11-05 16:08:46
JavaScript常见SyntaxError语法错误排查与修复方法
2026-11-05 13:58:44
JS中slice、substring和substr截取字符串的区别
2026-11-05 13:43:47
JS 转 TS 手动迁移最佳实践:从配置 tsconfig 到消除 any 类型
2026-11-05 11:53:32
为什么JS数组push后得到的是数字而不是数组?
2026-11-05 09:59:18
