【问题标题】:Using breakpoints to debug Javascript in IE and VS2008在 IE 和 VS2008 中使用断点调试 Javascript
【发布时间】:2010-09-27 10:39:26
【问题描述】:

我无法在带有 Javascript 的 Studio 中使用断点。如果我使用调试器,我可以调试;

我已经看到了这个Breakpoint not hooked up when debugging in VS.Net 2005 问题。我尝试了答案,但没有成功。

查看“模块”窗口,V.Mvc.Jobtrakt.PDB 已正确加载,但它指向一个临时文件夹 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\dbc0c0c5\f64a99b3\assembly\dl3\9de055b3\eb1303b1_9760c901\V.Mvc.Jobtrak.pdb:符号已加载。

我原以为它会指向: \JobTrak\Website\V.Mvc.Jobtrak\V.Mvc.Jobtrak\obj\Debug(在项目目录中)

但无论我关闭 VS 2008 的位置如何,然后吹走 temp 文件夹(如上所列)、bin 和 obj 文件夹。

打开 VS 2008 并进行了清理。我在js中设置了一个断点,现在似乎可以工作了(断点已填写) 开始调试,它永远不会在断点处中断。查看断点,它现在是一个带有红点和警告指示的红色圆圈。将鼠标悬停在断点上会给我这个有用的信息:断点当前不会被命中。该位置无法映射到客户端脚本。请参阅 ASPX 断点映射的帮助。我没有被重定向,断点在函数中。等等等等,这应该可以工作。

所以我想知道是否有人有任何想法? 有没有人可以在 VS2008 中设置断点并让它们工作?

【问题讨论】:

  • 我可以将“调试器”添加到 javascript 以强制其中断。我正在尝试让断点工作。

标签: javascript visual-studio-2008 breakpoints


【解决方案1】:

只需在脚本中为每一行或任何一行键入警报函数,如果警报没有被触发,那么我们可以通过错误识别它所在的行

<script type="text/javascript">  
$(function() {
    //event handler to the checkbox selection change event
    $("input[type=checkbox]").change(function() {
        //variables to store the total price of selected rows
        //and to hold the reference to the current checkbox control
        var totalPrice = 0, ctlPrice;
        //iterate through all the rows of the gridview
        $('#Grid2 tr').each(function() {
        //if the checkbox in that rows is checked, add price to our total proce
            alert("Hi")
            if ($(this).find('input:checkbox').attr("checked")) {
                ctlPrice = $(this).find('[id$= lblPackAmount]');
                //since it is a currency column, we need to remove the $ sign and then convert it
                //to a number before adding it to the total
                totalPrice += parseFloat(ctlPrice.text().replace(/[^\d\.]/g, ''));
            }
        });
        //finally set the total price (rounded to 2 decimals) to the total paragraph control.
        //alert(totalPrice);
        $('#lblAmount').text(totalPrice);               
    });
});
</script>

【讨论】:

  • 这段代码是什么?这和问题有关系吗?
【解决方案2】:

在我的情况下,我应该使用

$.ajax({ 类型:“获取”,

改为 $.ajax({ 类型:“POST”,...

【讨论】:

  • 你的两条线是一样的吗?应该有什么区别?
【解决方案3】:

您不必将调试器放入 javascript 中。我发生了这种情况,原因是 try catch 块中的脚本在语法方面存在错误。一旦我修复了语法,断点就会再次正确映射。

【讨论】:

    【解决方案4】:

    这也发生在我身上。断点在某些函数中停止工作。就我而言,问题是我在脚本中使用了&lt;%=..%&gt;。据我了解阅读 MSDN,发生这种情况是因为 Visual Studio 将断点行从 .ASPX 映射到基于行内容的结果 HTML,因此当您放置 &lt;%=..&gt; 时,生成的脚本将与那个不同在.ASPX 文件中。

    【讨论】:

      【解决方案5】:

      格雷格回答了这个问题,但只是为了增加回答的价值 -

      将调试器放入java脚本代码中。

      同时确保您在 Internet Explorer > 工具 > Internet 选项 > 高级中启用了调试器

      不应选中禁用调试的复选框。

      【讨论】:

        【解决方案6】:

        尝试在要中断的源中输入“调试器”

        【讨论】:

        • 好电话格雷格。那绝对是调试器的快速通道。
        • 这确实有效。我试图让断点工作。
        • 哎呀,6年后才接受。显然这仍然有效:)
        【解决方案7】:

        确保您加入了正确的流程。例如,在 IE 中加载页面后,

        1. 切换到 Visual Studio 并转到“调试”菜单。
        2. 选择“附加到进程”
        3. 在列表中找到 iexplore 并选择它。
        4. 点击“选择...”按钮。
        5. 在对话框中,选择“调试这些代码类型:”并选择“脚本”。
        6. 点击“确定”
        7. 点击“附加”

        看看这是否有助于你调试 javascript。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2010-10-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-03-16
          • 2015-02-14
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多