【问题标题】:Understanding unreachable breakpoints in IE11 F12 Developer tools了解 IE11 F12 开发者工具中无法到达的断点
【发布时间】:2017-09-09 22:28:30
【问题描述】:

我尝试在我们的网站上调试一个问题,但没有找到特定的 javascript 例程。我不知道为什么,但我的想法是,如果 F12 开发工具由于某种原因无法访问代码,那么该脚本块中的任何内容都无法访问并且不会被执行。

有没有什么地方可以解释为什么一个脚本块中的代码是可访问的,而另一个看似相同的块是不可访问的?

【问题讨论】:

  • 第二个块中某处的语法错误是否有可能使整个块无效?
  • 能否请您在错误点上方发布脚本的代码/屏幕截图,您能否告诉我其他网络浏览器是否也发生同样的情况?
  • 错误点上方的更多代码?我已经确定了错误上方的工作代码(请参阅屏幕截图中的活动断点和脚本关闭/打开标签),并验证它确实到达并中断了该代码。另外,“其他网络浏览器”是指非 IE 11 浏览器,还是其他计算机上的 IE 11 浏览器?
  • 我的意思是非 IE 浏览器。因为在脚本上出现跨浏览器问题虽然不是不可能,但很少见。
  • @Dan 您是否可以发布无法访问的完整 而不是仅一行?

标签: javascript ie11-developer-tools


【解决方案1】:

替换为language="javascript" 或删除language="JavaScript"

根据https://msdn.microsoft.com/en-us/library/ms533940(v=vs.85).aspx 的属性语言。

javascript

脚本是 JavaScript。

请参考thisthis

【讨论】:

  • 不幸的是,我没有把握好这次赏金的时间,因为我正在休假一周。但是,我认为这有足够的优点(以及我可以跟进的链接),我将把赏金奖励给你。当我重新开始工作时,我会跟进这件事,希望这足以满足我的需要。但是,IE 11 通常对大小写非常宽容,所以我不相信(而且,关于它是无效值没有错误。)
  • 如果我发现不是这种情况,希望我能回复你一些其他建议吗?
【解决方案2】:

虽然我将赏金授予第一篇文章,但实际答案是第二个 javascript 块中的错误使整个块的断点处理无效。

诊断这个问题(如果代码不是你自己的,或者你很久以前写的并且忘记了你在哪里进行了更改)是将每个例程分成自己的单独块,然后找到仍然存在的块失败。然后,用细齿梳理该例程以确定语法错误的原因 - 彻底!

一旦我确定了原因(分号放错了位置),就会为整个块重新启用断点。

其他原因可能是由于函数名称重复而无法访问代码块。然而,这不是我的情况,所以我没有确认这是导致断点无法到达的可能原因。

【讨论】:

    【解决方案3】:

    似乎函数 positionCollectionList() 调用最终返回,并且您的案例中的下一个代码块 strDGLabel_ContributingFactors 没有包含在任何函数中,因此无法调用或执行它,这意味着它无法访问代码。

    为了确保您可以尝试以下示例

    尝试将以下代码另存为html文件并在IE中打开,然后尝试在第8行保留断点,您将重现该问题。

    <html>
    <script>
    var te;
    </script>
    <script>
    var test="testing";
    return;
    te="test";
    </script>
    <body>
    HI
    </body>
    </html>
    

    谢谢

    【讨论】:

    • 谢谢,但上面的代码块非常不完整(缺少打开的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-18
    • 2017-09-07
    • 1970-01-01
    • 1970-01-01
    • 2017-07-10
    相关资源
    最近更新 更多