如何在Internet Explorer中暂停JavaScript执行?

Šim*_*das 17 javascript browser debugging iframe internet-explorer

我有以下场景:

  • 主页
  • 嵌套页面
  • 常见的JS文件(包含在两个页面中)

随后将嵌套页面加载到主页面的iframe中.两个页面在页面加载时从公共JS文件调用函数.

现场演示:
http ://www.ecmazing.com/misc/pause-execution/mainpage.html
http://www.ecmazing.com/misc/pause-execution/nestedpage.html
http://www.ecmazing.com /misc/pause-execution/common.js

常见的JS文件包含一个全局函数,它将H1元素绘制为红色.我想在该函数的开头暂停执行,以便在H1元素仍为黑色时暂停执行.

如何在主页面上执行此操作:

这是微不足道的.只需加载页面,打开浏览器的开发工具,选择common.js文件,并在函数的第一行设置断点.现在,重新加载页面.断点将持续重新加载,执行将暂停.

如何在嵌套页面上执行此操作:

现在,在Chrome和Firefox(Firebug)中,上面设置的断点(对于主页面)也适用于嵌套页面.两个页面都使用相同的JS文件,并且在该文件中设置断点将自动应用于这两个页面.不幸的是,这条规则不适用于IE.

更糟糕的是,即使我随后设置了断点,然后仅重新加载iframe,断点也不会持续存在.

所以,我不知道如何在IE中暂停执行嵌套页面.可以吗?(我通过debugger;在函数开头手动设置a来处理这个问题,但我希望能够通过IE中的开发工具设置断点,如果可能的话.)

pau*_*ulH 4

我能找到的最接近的解决方案是在主页上的 loadIFrame() 函数中设置一个断点,然后“介入”直到加载嵌套页面的 Common.js 文件。在一个更复杂的示例中,您将能够在新的 Common.js 文件中设置断点,并且它们将正常工作,直到下次加载 iframe 为止,此时它们将再次丢失。