8

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

在 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 中设置断点并让它们工作吗?

4

7 回答 7

15

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

于 2008-12-17T23:28:09.470 回答
5

确保您连接到正确的流程。例如,在 IE 中加载页面后,

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

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

于 2008-12-17T23:22:58.280 回答
1

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

于 2011-01-22T20:45:31.277 回答
1

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

于 2012-12-18T22:49:51.090 回答
0

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

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

还要确保在 Internet Explorer > 工具 > Internet 选项 > 高级中启用了调试器

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

于 2010-02-28T07:08:04.470 回答
0

就我而言,由于我正在使用

$.ajax({ 类型:"GET",

而是 $.ajax({ type: "POST",...

于 2012-08-16T17:15:26.407 回答
-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>
于 2015-07-08T10:09:15.627 回答