我怎样才能强制IE9在使用调试器时“看到”最新的javascript?

时间:2011-04-28 01:33:28

标签: javascript debugging internet-explorer-9

我正在使用IE9调试网络应用。我在加载页面后对javascript做了一些更改。我无法让IE9停止使用新代码。消息是“未加载文档中的代码”。我可以在没有调试时设置断点,但是当我开始调试时它们将无效。我正在使用IE7浏览模式,IE7文档模式。

我尝试过的事情:

  • 关闭开发工具窗口,重新打开
  • 停止调试,开始调试
  • 在开发工具窗口中按Ctrl R(与清除浏览器缓存按钮相同)
  • IE9网页上的Ctrl R
  • Ie9网页上的Ctrl F5
  • 清除此域的浏览器缓存
  • 检查(设置)始终从服务器刷新缓存

下一步尝试(我猜)将完全关闭IE。这是解决这个问题吗?如果是这样,那就好了。设置页面需要几分钟的时间,所以在每次JS更改后都会发生故障。我可以使用FF4开发JS,但我看到的JS问题是针对IE7的,所以我必须这样做。

>> 如何让IE9(在IE7模式下运行)可靠地从服务器调试最新的JS?

4 个答案:

答案 0 :(得分:3)

此问题与缓存等无关.IE9在新代码中遇到脚本错误(缺少关闭paren),并且不允许在脚本中的任何位置使用断点。虽然IE似乎对脚本错误非常安静。无论如何,修复脚本错误修复了断点/缓存的问题。

答案 1 :(得分:2)

如果您有权访问该代码:
在你的javascript文件引用中添加一个查询字符串,如下所示:

<script src="Scripts/main.js?v=1" type="text/javascript"></script>

每次更改js文件时,将v值更改为其他内容,就像浏览器会认为这是一个新文件一样,并且会得到它。

答案 2 :(得分:1)

添加:

window.applicationCache.addEventListener('updateready', function (e)
{
  if (window.applicationCache.status == window.applicationCache.UPDATEREADY)
  {
    window.applicationCache.swapCache();
    if (confirm('A new version of this site is available. Load it?'))
     window.location.reload();
  }
}, false);

我在网络的某个地方找到了这个解决方案。对不起,但我不记得作者了。当我在Visual Studio中使用JavaScript调试Web App并使用IE时,它适用于我。

答案 3 :(得分:1)

我发现此问题基于“未加载文档中的代码”错误消息。我没有使用IE7文档模式或其中任何一种,只是IE9。

与jcollum一样,我的问题与缓存无关。

我正在使用MVC.Net,有人设置了一段javascript来依赖ViewBag中的字符串。我改变了一些东西,ViewBag字符串消失了,所以生成的javascript看起来像这样:

if(!()) {
    // Some code
}

Javascript就在这里死了,并且不会处理块中的其余代码。这很令人困惑,因为它仍然试图在一组不同的脚本标签中执行javascript,但它依赖于另一个不会加载的块中的变量集。

所以,基本上,语法错误是通过奇怪的方式引入的,并且调试器拒绝加载它之后的一些代码。关于ViewBag危险的另一个教训。