RequireJS无法在IE9中运行

时间:2012-10-05 12:18:06

标签: javascript internet-explorer asynchronous internet-explorer-9 requirejs

我遇到了一种相当特殊的行为 - 我的RequireJS模块似乎没有在IE9下初始化和运行:

<head>
    ...
    <script data-main="/static/js/main" src="/static/js/libs/require.js"></script> // Seems to be not running at all.
</head>

但是,每当我启动IE9的开发者工具并重新加载页面时,模块就会在Firefox / Chrome / Safari /等中正常运行。清理浏览器缓存并关闭IE9中的开发人员工具将导致JavaScript无法再次完全运行。

另一种启动RequireJS模块执行的方法是在它之前添加一个同步脚本:

<head>
    ...
    <script type="text/javascript" src="https://getfirebug.com/firebug-lite.js"></script> // Add any synchronous script calling here and the module below will execute fine.
    <script data-main="/static/js/main" src="/static/js/libs/require.js"></script>
</head>

看起来奇怪行为的原因可能是:

  • RequireJS'异步加载
  • 出了点问题
  • 导致脚本在$ .ready()
  • 之前启动的问题

为什么开发人员工具可以启动执行实际上让我很困惑。

寻找对该现象及其解决方法的完整解释。

1 个答案:

答案 0 :(得分:5)

在没有打开开发工具时,IE9中找到了答案:consoleundefined,但是你永远不会看到这个错误,因为工具的控制台需要页面重新加载才能开始工作。

此处有更多详情:https://github.com/jrburke/requirejs/issues/488