我遇到了一个相当奇特的问题 - 我的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()之前启动了
不过,开发者工具可以启动执行,这真的让我感到困惑。
寻找有关该现象及如何解决它的完整说明。