为了账号安全,请及时绑定邮箱和手机立即绑定

jsp中注释掉的代码为什么还会起作用

jsp中注释掉的代码为什么还会起作用

PIPIONE 2019-03-23 19:15:39
<!--function init() {    if (${! SME230FormBean.viewFlg && ! SME230FormBean.rawFlg}) {        inputChk_disableMinMax('${SME230FormBean.inChk_selChkType}');        <logic:notEmpty name="SME230FormBean" property="inChk_selCharKindType">            <logic:iterate id="inChk_selCharKindType" name="SME230FormBean" property="inChk_selCharKindType">                <c:if test="${inChk_selCharKindType == 'ALL'}">                    inputChk_SelCharKindAll('ALL');                </c:if>            </logic:iterate>        </logic:notEmpty>        inputFld_disabled('${SME230FormBean.inFld_selFldType}');        defVal_disabled('${SME230FormBean.defVal_selUseType}');    }        if (${! SME230FormBean.viewFlg && SME230FormBean.rawFlg}) {        inputFld_disabled('${SME230FormBean.inFld_selFldType}');        defVal_disabled('${SME230FormBean.defVal_selUseType}');    }    viewFmt_disabled('${SME230FormBean.viewFmt_selUseType}');    default_disabled('${SME230FormBean.default_selUseType}');}//-->以上代码是jsp中的。<td>                <html:radio name="SME230FormBean" property="default_selUseType" value="0" onclick="default_disabled('0');" ><bean:message key="SME230.sequ.nouse" bundle="mi"/></html:radio>                <html:radio name="SME230FormBean" property="default_selUseType" value="1" onclick="default_disabled('1');" ><bean:message key="SME230.sequ.usesequ" bundle="mi"/></html:radio>                <html:radio name="SME230FormBean" property="default_selUseType" value="2" onclick="default_disabled('2');" ><bean:message key="SME230.sequ.useinde" bundle="mi"/></html:radio>                <html:select name="SME230FormBean" property="default_selFmtType" styleClass="selectBox2">                    <html:optionsCollection name="SME230FormBean" property="default_pullDownList"/>                </html:select>            </td>以上是onclick事件触发的js动作。这是一段写在jsp中被注释掉的代码,最后两行是用来做一个下拉框的初始设定,控制初始时下拉框是活性的还是非活性的。如果没有末尾的两行代码,js就不会起到应有的作用。不明白为什么备注是的代码还会起作用,求指教。
查看完整描述

4 回答

?
蝴蝶不菲

TA贡献1810条经验 获得超4个赞

这种用法是一种以前的老技巧,现在有时候还能看到,但已经不常用了。

在浏览器的上古时代,各种浏览器对JS的支持各不相同,很多浏览器压根不支持JS,所以那些支持浏览器的厂商就制定了这么一种策略,在<script>标签中的<!--会被忽略,而//-->由于用了JS注释,所以也不会起作用,因此对支持JS的浏览器来说这两行并没有起到注释的作用。但是对不认识JS的浏览器来说就不一样了,它们会把<!--当做HTML注释,然后由于不认识JS,所以最后的//-->也并不会被当做JS注释,结果就是所有JS代码都被当成了HTML注释看待,变成普通的注释文本了。

那时候,JS通常只是用来实现一些花哨的效果,表单验证时代都还没有开始,所以有没有JS实际上关系并不是很大,顶多就是没那么好看而已。

其实这种用法现在还有,比如严格模式就是由"use stric"这么一个字符串表示的,对于不支持严格模式的JS引擎来说这就是一个普通的字符串,但反之则是开启严格模式的命令。其他的例子还有IE注释等,都是用的这种策略。


查看完整回答
反对 回复 2019-04-21
?
回首忆惘然

TA贡献1847条经验 获得超11个赞

哪只眼睛看到被注释了
<!-- //注释开始

--> //注释结束

but
// --> //结束注释被注释掉了 所以就没用了啊。


查看完整回答
反对 回复 2019-04-21
?
隔江千里

TA贡献1906条经验 获得超10个赞

参考这个试试?

https://img1.sycdn.imooc.com//5cbbceb900015c9008000572.jpg

how to use comments in JSP


查看完整回答
反对 回复 2019-04-21
?
慕容708150

TA贡献1831条经验 获得超4个赞

js函数能用<!---->注释?


查看完整回答
反对 回复 2019-04-21
  • 4 回答
  • 0 关注
  • 951 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信