我有许多我需要调试的现有脚本,所有脚本都是从代码背后隐藏的。
我更喜欢使用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);
}
是否可以调试它而无需拉出测试页中的每个脚本?
编辑:谢谢
答案 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的新实例,以便您可以调试脚本。
我希望,这有帮助。