如何调试用RegisterClientScriptBlock方法注册的Javascript

时间:2010-08-29 20:44:20

标签: javascript asp.net visual-studio internet-explorer

我有许多我需要调试的现有脚本,所有脚本都是从代码背后隐藏的。

我更喜欢使用Visual Studio 2008客户端debbging功能,但断点只能在带有脚本块的aspx文件中设置。

问题是我不能在脚本上设置断点,因为它们都是从代码隐藏文件(而不是aspx文件)注册的。使用ClientScriptManager将脚本添加到页面.RegisterClientScriptBlock方法(类型,字符串,字符串,布尔值)

这是一个例子(它没有破坏,只是它如何添加到页面的一个例子)。

if (!cs.IsClientScriptBlockRegistered(cstype, csname2))
{
  StringBuilder cstext2 = new StringBuilder();
  cstext2.Append("<script type=\"text/javascript\"> function DoClick() {");
  cstext2.Append("Form1.Message.value='Text from client script.'} </");
  cstext2.Append("script>");
  cs.RegisterClientScriptBlock(cstype, csname2, cstext2.ToString(), false);
}

是否可以调试它而无需拉出测试页中的每个脚本?

编辑:谢谢

1 个答案:

答案 0 :(得分:4)

你应该添加调试器;代码中的指令。像这样:

 cstext2.Append("<script type=\"text/javascript\"> function DoClick() {debugger;");
 cstext2.Append("Form1.Message.value='Text from client script.'} </");
...

此外,您必须按如下方式调整IE:

工具 - >网络选项 - >高级。确保未选中“禁用脚本调试(其他)”和“禁用脚本调试(Internet Explorer)”。

现在,如果调用DoClick方法,将生成一个特殊的异常,IE将建议您运行VS的新实例,以便您可以调试脚本。

我希望,这有帮助。