为什么Javascript有时不会在IE8中加载

dam*_*iel 9 javascript internet-explorer-8

我有外部javascript文件加载到我的母版页.

有时在IE8中,我的javascript文件没有正确加载,浏览器会抛出一堆错误,说明对象无法识别.

如果我刷新页面,那么一切都很好.如果我点击链接,那么问题有时会再次发生.

我的标题中有元标记,用于清除每个请求的缓存.

另外我使用head.load来并行加载我的js文件.

head.load脚本在我的标题中,然后外部文件在我的身体的末尾.

请记住,此问题仅发生在IE8中.所以我的问题是..是否有一个hack我可以用来确保每次页面加载IE8时我的javascript文件都正确加载?

任何帮助将不胜感激.

根据要求更新

<head runat="server">
    <meta http-equiv="CACHE-CONTROL" content="NO-CACHE" />
    <meta http-equiv="PRAGMA" content="NO-CACHE" />
    <meta http-equiv="EXPIRES" content="-1" />

    <script type="text/javascript" src="scripts/js/head.load.min.js"></script>
</head>
<body>
<script type="text/javascript">
    head.js("scripts/js/jquery-1.6.2.min.js");
         head.js("scripts/js/jquery.cookie.js");
    head.js("lib/gritter/jquery.gritter.min.js");
    head.js("lib/fancybox/jquery.easing-1.3.pack.js");
    head.js("lib/fancybox/jquery.fancybox-1.3.4.pack.js");
    head.js("scripts/js/jquery.microaccordion.js");
    head.js("scripts/js/jquery.stickyPanel.js");
    head.js("scripts/js/guidely.js");
    head.js("scripts/js/pto.js");
</script>
</body>
Run Code Online (Sandbox Code Playgroud)

dam*_*iel 2

好吧,问题似乎是 head.load 库如何在 IE8 中加载我的外部。如果我在加载 head.load 库之前加载 jquery,然后在页面末尾并行加载我的外部;那么就没有 javascript 错误了。给自己上一堂关于 javascript 加载和 IE8 的小课。

感谢大家的意见。

@ Frederic - 我在一家拥有 188,000 名员工的公司工作。如果用户在其浏览器中安装了导致我的页面崩溃的附加组件,那么我对此无能为力。我也不认为这个问题是由任何附加组件引起的。这就是 IE8 中处理 head.load 库的方式。

<head runat="server">
    <meta http-equiv="CACHE-CONTROL" content="NO-CACHE" />
    <meta http-equiv="PRAGMA" content="NO-CACHE" />
    <meta http-equiv="EXPIRES" content="-1" />
    <script type="text/javascript" src="scripts/js/jquery.min.js"></script>
    <script type="text/javascript" src="scripts/js/head.load.min.js"></script>
</head>

<script type="text/javascript">
    head.js("scripts/js/jquery.cookie.js");
    head.js("lib/gritter/jquery.gritter.min.js");
    head.js("lib/fancybox/jquery.easing-1.3.pack.js");
    head.js("lib/fancybox/jquery.fancybox-1.3.4.pack.js");
    head.js("scripts/js/jquery.microaccordion.js");
    head.js("scripts/js/jquery.stickyPanel.js");
    head.js("scripts/js/guidely.js");
    head.js("scripts/js/pto.js");
</script>
Run Code Online (Sandbox Code Playgroud)