小心注释掉的js代码也会引起错误
2006-09-21 22:50
519 查看
平时在用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+"×tamp="+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标记!
原来如此!
看来,有时候注释并不真正是注释,即使被编辑器识别为注释,也不一定被编译器识别为注释。
<%@ 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+"×tamp="+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标记!
原来如此!
看来,有时候注释并不真正是注释,即使被编辑器识别为注释,也不一定被编译器识别为注释。
相关文章推荐
- JS注释不规范,引起注释的代码仍被编译
- js中包含中文注释引起的错误
- 中文注释引起代码执行错误! --转
- 用微软AJAX后response,js代码的时候,导致"Error parsing near" 错误.
- Ibatis XML 配置文件注释引起错误及解决方案
- JS错误代码解释大全.Dreamweaver技巧精粹.网页变换效果[转]
- 写代码时各种注释 引起的致命问题
- 项目中js错误引起的MyEclipse的卡死
- JSLint(检测js代码是否有错误)的安装和使用!
- javascript 容错处理代码(屏蔽js错误)
- YUIDoc example代码高亮错误、生成API文档目录不按源文件注释顺序
- 不小心,代码重构产生严重错误,狂占内存
- Ibatis XML 配置文件注释引起错误及解决方案
- HTML,CSS,JS,ASP等代码注释方法
- (转)JS 错误代码表
- Node.js基础代码示例,带注释
- 由自动执行的匿名函数引起的js错误
- 0.jquery 验证,以及显示出现错误的地方 1.当用jquery.validate与ajax时候特别小心在每句后面的逗号问题,如果不需要的地方加上逗号会造成页面无法进入js验证
- js/javascript代码注释规范与示例
- mysql代码里面有中文注释导致语法错误