zoukankan      html  css  js  c++  java
  • 小心注释掉的js代码也会引起错误

    平时在用asp.net2,有一些功能趋向于用脚本实现比较简单,如要实现一个postable模式对话框,可以用这么一个container,其中加一个iframe,并加上一个js函数,例如下面这个:

    <%@ Page Language="VB" AutoEventWireup="false" CodeFile="FrmPostableDialogContainer.aspx.vb" Inherits="FrmPostableDialogContainer" %>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>无标题页</title>
        <script type="text/javascript" src="./js/ParamOp.js"></script>
        <script type="text/javascript">
            function OpenTrueDlg(){
                var DlgUrl=GetParaStr("dlg");
                if (DlgUrl!=null && DlgUrl != ""){
                    DlgUrl=unescape(DlgUrl);  
                    DlgUrl=encodeURI(DlgUrl);
                    //alert(DlgUrl);
                    var ele = document.getElementById("DialogUrl");
                    if (ele){
                        if(DlgUrl.indexOf("?")==-1){
                            ele.src=DlgUrl+"?timestamp="+new Date().getTime();
                        }else{
                            ele.src=DlgUrl+"&timestamp="+new Date().getTime();
                        }
                    }
                 }
             }
             
           </script>
    </head>
    <body >
        <form id="form1" runat="server">
        <div>
       
        </div>
        </form>
        <div>
        <iframe id="DialogUrl" src="" width="100%" height="100%"  ></iframe>
        </div>
       </body>
    </html>

    为了调试一个问题,我在head中的加了一句:
    document.writeln("<title>TMD</title>");
    之后,我又把它注释了:
    //document.writeln("<title>TMD</title>");
    没想到运行时总有异常:<head>中只能有一个<title>元素。
    我在代码中找来找去,也总找不到这个错,我以为是编译缓存,我把web服务器关了,甚至把vs关了,但一运行,还是出这个错。
    但这段代码中值得怀疑的地方并不多,我在不同的地方加上alert,或者故意让某处的js出引用未定义的变量。终于,让我看到模式对话框的生成的HTML代码了,有这么一段:
    //document.writeln("<title>
    TMD </title>
    根据编辑器的代码着色功能,可以看出//document.writeln("<title>被识别为js注释,而下一行的TMD </title>确被识别为HTML标记!
    原来如此!
    看来,有时候注释并不真正是注释,即使被编辑器识别为注释,也不一定被编译器识别为注释。

  • 相关阅读:
    最新 蓝鲸人java校招面经 (含整理过的面试题大全)
    最新 上海轻轻java校招面经 (含整理过的面试题大全)
    最新 苏州朗动java校招面经 (含整理过的面试题大全)
    最新 医渡云java校招面经 (含整理过的面试题大全)
    变量的自动类型转换和强制类型转换(day01_10)
    java的数据类型(day01_09)
    常用的dos命令操作(day01_03)
    1.镜像-虚拟光驱-光驱
    Spring基于配置文件的方式来配置AOP
    Spring-AOP(切面的优先级&&&重用切点表达式)
  • 原文地址:https://www.cnblogs.com/Render/p/511271.html
Copyright © 2011-2022 走看看