1.首先应该把ie的“禁止脚本调试选项”去掉
2.如果在vs.net里面,就设置一个html文件为启动页,然后在文件上面设置断点,这样应该是好使的。记住:设定html文件为启动页
如果你的程序是asp,或者aspx,那还有这样的方法:
1.
a)在你想要停止的地方加上alert(),
b)然后运行的网页,
c)使用attach to process(vs.net 和vs interdev 都有这个菜单项)连接上你的进程,
d)到alert()(在前面设置好)语句后,不要点\"确定\",
e)回到debugger(vs.net 或者 interdev)暂停进程,
f)点击警告窗口的\"确定\",
g)这时脚本停留在alert(语句的下一条)
2.使用浏览器的\"调试\"菜单下面的\"到下一条语句停止\"的功能,也可以很好地调试脚本
JavaScript脚本调试经典技巧
在调试Javascript脚本的时候,如果有错误,IE的状态栏里会有个问号[点击此问号],或者弹出错误框,为了尽快找到错误,下面是常用的调试方法:
1,如果出现对象为null或找不不到对象,那就是id,name或DOM写法不对,请检查错误所在的行;
2,如果错误定位到一个函数的调用上,说明函数体有问题,到函数体里找原因。
3,为了加快速度,可以先用/* */注释屏蔽掉一部分代码,逐步检查;
4,可以增加alert(xxx)来看看变量是否得到了期望的值;
5,IE的错误报告往往不准确,比如行18错的话,有时候是19行有问题;
6,为了确保代码能够正确运行,在实在不能确定能否出现错误的时候,用try{}catch{}语句在做初学的时候往往不注意大小写例如innerHTML属性,容易写成innerHtml,一般如果出现对象不支持此种属性或方法的提示的时候,就是大小写造成的,还有一种可能,就是,你正在试图使用一个根本没有的属性或方法。
1.问号[点击此问号],或者弹出错误框,为了尽快找到错误点问号,看第n+1行是否有错误。没有就往前重要的是经验,而且是自己写的代码,才能对症下药
2.程序代码要规范,括号要对应,尽量使用tab键
出现缺少;号的错误,其实不是少;号,而是你的表达式里没有写合法的运算符之类:比如:str=\"sdfsdsdf\"+\"dfsdfsd之类的没有语法错误的情况下
我常常用的alert();return;逐步确定错误范围;在调试JSP程序的时候是out.println(\"Run here right!\");out.close()
我是直接写个ASSERT的函数,在可以的地方throw(msg)然后用调试器看的.
写错ID就不要提了,最经常是某个函数返回NULL,在我认为不应该返回NULL的地方,我就这样写
var obj=SomeFunction();
ASSERT(null!=obj,\"var obj=SomeFunction();返回null\");
function ASSERT(mustbetrue,msg)
{
if(mustbetrue=false)throw(new Error(-1,\"ASSERT: \"+msg));
}
function ASSERT(mustbetrue,msg)
{
if(mustbetrue==false)throw(new Error(-1,\"ASSERT: \"+msg));
}
VS.Net是最好的脚本调试器了。
什么都监视得了。。
use Visual Interdev to debug
关try catch的一点点补充,来自部门培训例子
<script>
try{
x=y; // Cause an error.
}
catch(e){ // Create local variable e.
alert(e); // Prints \"[object Error]\".[Page]
alert(e.number & 0xFFFF); // Prints 5009.
alert(e.description); // Prints \"\''y\'' is undefined\".
}
</script>
用vs.net调试javascript
1,首先,要让你的ie允许调试脚本,具体步骤如下:
打开ie->工具菜单->inter选项->高级选项卡->去掉“禁止脚本调试\"选项
2,打开vs.net,创建一个新的asp.net项目(或打开一个)
3,运行你要调试的页面