如何在vs.net里调试脚本

来源:互联网 发布:require.js兼容ie8吗 编辑:程序博客网 时间:2024/04/20 13:48
怎样对.net中的javascript脚本进行调试?(方法一)
[日期:2006-06-22]

第一步:在IE的“Internet设置”中选择“高级”——“安全”——“启用集成windows身份验证”(这一步很重要!!!)
第二步:同样在“Internet设置”中把“禁止脚本调试”的勾去掉
第三步:用调试模式启动程序
第四步:在vs.net的菜单选择“调试”——“窗口”——“运行文档”
第五步:在“运行文档”窗口中双击要调试的文档
第六步:在该文档中需要的脚本开始调试的位置设置断点
第七步:自己操作,令程序运行到断点处,余下的就是调试程序了,我也不多说了。
注意,如果还是不行,那可能是缺少了一个名为“ASPCLIENTDEBUG”的cookie。
设置这个cookie的方法:
1.创建包含以下代码的 HTML 文本文件:
<FORM name=form1>cookie name:<INPUT value=ASPCLIENTDEBUG name=txtName></INPUT>
cookie value:<INPUT value="doesn't matter" name=txtValue></INPUT>
<INPUT type=button value="Set Cookie"></INPUT>
<INPUT type=button value="Get Cookie"></INPUT>
</FORM>
2.将此文件保存为 cookie.html。
3.将此文件复制到 c:/inetput/wwwroot
4.在 Internet Explorer 的“地址”框中,键入:http://localhost/cookie.html
5.在 http://localhost/cookie.html 窗口中,单击“设置 Cookie”按钮。
在VS中调试javascript(转)(方法二)
前一阵子发现一个使用VS.net调试javascript的简便方法,比起以前附加IE进程的做法方便多了,做法如下:首先在IE选项-》高级,将禁止脚本调试去掉。然后在需要调试的页面的脚本中加上debugger; 然后运行这个页面,就会在这里停下来,下一步怎么做大家应该很熟悉了吧?
例如:
function BtnSubmit_Click()
{
var aaa;
aaa='aaa';
debugger; //运行到这会停下来
alert(aaa);

}
如何在vs.net里调试脚本
2005-7-28.17:56:50[作者-heone]


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:/n"+msg));
}
function ASSERT(mustbetrue,msg)
{
if(mustbetrue==false)throw(new Error(-1,"ASSERT:/n"+msg));
}
VS.Net是最好的脚本调试器了。
什么都监视得了。。

use Visual Interdev to debug

关try catch的一点点补充,来自部门培训例子


http://groups.google.com/groups?q=debugging+javascript&ie=UTF8&oe=UTF8&hl=en


1、首先在IE中启用脚本调试,选择 工具-Internet 选项-浏览-清除禁用脚本调试的选择
2、开始以debug执行ASP.NET程序
3、在 调试-窗口-运行文档,让VS显示运行文档
4、单步运行程序过程执行ASPX文件会在运行文档的窗口中显示,双击打开需要调试的文件,在需要调试的脚本位置上设置断点,调试即可

我用vs.net调试了一下带javascript的html页,结果,调试窗口里根本没有脚本里的变量在运行到断点时的值的显示,这也叫调试呀,我晕,于是我自己写了个跟踪变量的函数,如下.
//********************************************
//这是我做的一个跟踪变量函数
//在需要使用跟踪变量的地方直接调用trace()函数就可以了.
var newwin;
var isDebug = 1;
function trace(s)
{
if(isDebug)
{
try
{
newwin.document.write(s + "
");
}
catch(e)
{
newwin = window.open("","trace");
newwin.document.write(s + "
");
}
}
}
//**********************************************

断点调试script脚本程序

如果想断点调试script脚本程序 ,前题是要先安装vs.net。
在B/S应用开发中,脚本可以提高程序与客户的交互能力、降低客户端与服务的数据传输。但是大多数B/S开发人员还是趋向于避免写客户端脚本或只用脚本完成一些简单的验证功能,造成这种状况有很多原因,但是脚本程序难以调试是其中的主要原因。下面的操作步骤详细描述了怎样利用vs.net中的调试器来调试javascript:
1,首先,要让你的ie允许调试脚本,具体步骤如下:
打开ie->工具菜单->inter选项->高级选项卡->去掉“禁止脚本调试"选项
2,打开vs.net,打开要调试的脚本文件,设置好段点。
3,在IE中运行你要调试的页面,出现页面后,点查看菜单->脚本调试程序->打开。如下图:
4,打开后将弹出实时调试窗口,选择可用的调试器。
5,选择调试器后,点“是”按钮后,将弹出附加到进程的窗口,如下图。选择你要调试的程序类型,在这里因为我们要调试的是script脚本程序,所以选择script项。确定后,将会自动进入vs.net编辑器中。
6,vs.net会自动打开你当前要调试的html运行文件,在该文件的脚本中设置断点。如果想在页面包含的脚本文件中设置断点,可以在vs.net中选择:
调试菜单->窗口->运行文档来打开所有包含的脚本文件。
7,设置断点后,再转到IE中,涮新页面,系统会自动进入到vs.net编辑器。当脚本运行到断点时,就可以进行调试了.如果你想在页面开始装载时就进入调试状态,可以按F10(逐过程)进行调试。
VS .net 2003调试javascript中两个杂症的解决
[发布时间:2006-5-22 2:21:49 发布人:admin]
基本的调试方法及步骤,vs文档里写的再详细不过了。这里是我这两天压制了数百次重装系统的邪念后,在前辈高手无私的奉献,搜索引擎不知疲倦的工作下,得到的一点经验,希望能为大家和自己的记忆带来一些帮助。
问题一:无法在 Web 服务器上启动调试。
这个问题现身于各类论坛,可见是一个很普遍的问题,解决问题的方法也是不胜枚举,不过在尝试了所有的方法后,建议大家还是以vs帮助为准。
我的问题是在iis默认站点属性中,启动保持http激活没有选定。
问题二:在附加IE,调试javascript时,出现“在要调试的应用程序中没有运行的脚本程序”的错误
这个问题的建议大家还是先按照vs帮助的步骤设置
要注意的是:win2000下,在IE Internate选项里,高级设置里的安全下,一定要勾选“启动集成windows身份验证(需要重启动)”。
 
原创粉丝点击