【问题标题】:Why are my client-side javascript breakpoints not being hit?为什么我的客户端 javascript 断点没有被命中?
【发布时间】:2013-06-20 13:23:19
【问题描述】:

我正在着手我的第一个单页应用程序。我已经安装了带有更新 2 的 Visual Studio 2012 Professional,并加载了该项目。我已经进入 IE10 并取消选中“禁用脚本调试(Internet Explorer)”复选框。

这是我的代码 sn-p,应该被调试器命中

但是,当我运行代码时,红色断点符号变成了一个空心的白色

带有图例“当前不会命中断点;没有为此文档加载任何符号”。

我在这里不知所措。甚至调试器;语句不会导致代码中断。

我现在已经重新安装了两次 VS2012 和 Update 2。

谢谢

爱德华

【问题讨论】:

  • 更新:我已经从 IE10 恢复到 IE9,现在遇到了不同的问题。断点仍然没有被命中(没有为此文档加载任何符号)但是调试器;语句现在导致代码以“iexplorer.exe 中发生未处理的异常('脚本断点')”​​停止。

标签: visual-studio-2012 javascript-debugger


【解决方案1】:

您的解决方案中是否有多个项目,您放置断点的文件是否属于设置为启动项目的同一项目?

【讨论】:

  • 是的,有三个项目,但是包含断点的文件是设置为启动项目的一个。实际上有几个断点,没有一个被击中(我知道这是因为正在进行的各种操作)。
  • 你需要在启用脚本调试后重新启动 IE 和 VS,你也可以点击程序启动的第一行,你可以尝试在那里放置断点并单步执行,看看你能走多远可以到达吗?
  • 我已经多次重启了 IE 和 VS,并且至少重启了 5 次(并进行了多次 iisreset 操作)。我可以在数据层(C# 代码)中打断点,但不能在任何 javascript 中打断点。
  • 你是否将VS附加到进程WebBrowserServer.exe?
  • 不,我没有将 VS 附加到进程中,但根据坐在我两边的同事,在相同的开发环境中使用相同的代码库,这是没有必要的。我也没有发现在以前的 VS 风格中调试 javascript 是必要的——如果在 IE 中启用了客户端调试,调试器语句通常可以工作。
【解决方案2】:

你试过给函数起个名字吗(这里是openMain函数名) 为了更容易理解,我将展示我用于网站的代码。

<form  name="myForm" action="mailto:kkatsman@rocfriesepoort.nl?subject=Stickers" enctype="text/plain" method="POST" onsubmit=" return formcheck()">
        <table id="formulier">
            <tr>
                <td>Klas:</td>              <td><input type="text" required name="klas" id="klas" onkeyup="vulaan(this)"></td>
            </tr><tr>
                <td>Examencode:</td>        <td><input type="text" required name="examencode" id="examencode" onkeyup="vulaan(this)"></td>
            </tr><tr>
                <td>Examennaam:</td>        <td><input type="text" required name="examennaam" id="examennaam" onkeyup="vulaan(this)"></td>
            </tr><tr>
                <td>Datum:</td>             <td><input type="text" required name="datum" id="datum" onkeyup="vulaan(this)"></td>
                <td colspan="2"></td>                   
                <td>Week:</td>              <td><input type="text" required name="week" id="week" onkeyup="vulaan(this)"></td>
            </tr><tr>
                <td>Tijdstip: van</td>      <td><input type="text" required name="van" id="van"  onkeyup="vulaan(this)"></td>   <td>tot</td>    <td><input type="text" required name="tot" id="tot" onkeyup="vulaan(this)"></td>
                <td>Docent:</td>            <td><input type="text" required name="docent" id="docent"  onkeyup="vulaan(this)"></td>
            </tr>
        </table>

所以当某个文本框中有一个按键时,它指的是函数“vulaan”

现在我的 javascript 文件看起来像这样:

function vulaan()
{
    //voor de klas
    var klas = document.getElementById('klas').value;
    var klas1 = document.getElementById('klas1').value;
    var klas2 = document.getElementById('klas2').value;

    document.getElementById('klas1').value = klas;
    document.getElementById('klas2').value = klas;
}

【讨论】:

  • 好吧,当我创建网站并使用 javascript 时,我会为每个功能命名。就像当我制作联系表格或某种形式时,我可以通过执行以下操作来使用 javasccrtipt 进行检查:onlick="name" 并且“name”指的是一个名为 name 的函数
  • 感谢 user1879621 - 我明天再看看并恢复。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-07-16
  • 1970-01-01
  • 2021-10-30
  • 2014-08-28
  • 1970-01-01
  • 2012-01-06
  • 2014-06-23
相关资源
最近更新 更多