JavaScript札记 -- JSP中嵌套JS

本文探讨了在JSP中嵌入JavaScript时遇到的问题,即JS字符串中的自定义标签在JSP翻译过程中导致的语法错误。解决办法是在隐藏的span中放置自定义标签,并使用特殊字符串在客户端进行替换。同时强调了JavaScript在框架中实现复杂效果时的挑战,建议开发者在编写模块时注重浏览器兼容性测试和代码的通用性、可扩展性。此外,还提醒避免直接操作Properties文件,推荐使用自定义API以适应未来可能的变化。
摘要由CSDN通过智能技术生成
问题:对于JSP中包含JavaScript的情况,如果JS中有一String, String中包含了JSP的tag(e.g. <custom_tag:xxx ...>),那么在JSP翻译成Servlet时,web服务器并不识别这个tag在JS中的含义,而是依旧按照tag在JSP中的语法含义进行解释 -- 也就是说,即使该tag在JS中被注释掉:
// <custom_tag:xxx ... />
web服务器并不买"//"注释符的账,依旧是我行我素的进行自己份内的工作:翻译这个自定义的tag.
这里举自定义的tag,是因为这种错误大多发生在custom tag情况下,对于<span ...>...</span>这种html标准tag,web服务器的翻译工作并不会带来什么不同.
比如,在JS中有:
var s = '<custom_tag:xxx ... />';
经过web服务器翻译后,<custom_tag:xxx ... />的结果很可能产生单引号(attribute),在这种情况下,由于和上行代码中的外部单引号混淆,而造成了语法错误,或者之后的运行异常。
 -- 一句话:JSP翻译时是针对全部文档的(当然,也包括了内嵌的JS)

如果真想在JS中使用JSP的tag,应该怎么办呢?
解决方案:
将custom tag放在一个隐藏的span中:
<span id='custom_span' style='display:none'><custom_tag
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值