Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么Javascript有时不能加载到IE8中_Javascript_Internet Explorer 8 - Fatal编程技术网

为什么Javascript有时不能加载到IE8中

为什么Javascript有时不能加载到IE8中,javascript,internet-explorer-8,Javascript,Internet Explorer 8,我在母版页中加载了外部javascript文件 有时在IE8中,我的javascript文件无法正确加载,浏览器会抛出一系列javascript错误,说“无法识别对象” 如果我刷新页面,那么一切都很好。如果我点击一个链接,那么问题有时会再次出现 我的头中有元标记,用于在每次请求时清除缓存。我正在使用head.load库并行加载我的js文件 head.load库位于我的标题中,外部文件位于我的正文末尾 请记住,这个问题只发生在IE8中。所以我的问题是..鼓声请..是否有一个黑客,我可以使用它来确保

我在母版页中加载了外部javascript文件

有时在IE8中,我的javascript文件无法正确加载,浏览器会抛出一系列javascript错误,说“无法识别对象”

如果我刷新页面,那么一切都很好。如果我点击一个链接,那么问题有时会再次出现

我的头中有元标记,用于在每次请求时清除缓存。我正在使用head.load库并行加载我的js文件

head.load库位于我的标题中,外部文件位于我的正文末尾

请记住,这个问题只发生在IE8中。所以我的问题是..鼓声请..是否有一个黑客,我可以使用它来确保我的javascript文件在每次为IE8加载页面时都正确加载

任何帮助都将不胜感激

根据要求进行更新

<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>

js(“scripts/js/jquery-1.6.2.min.js”);
js(“scripts/js/jquery.cookie.js”);
js(“lib/gritter/jquery.gritter.min.js”);
js(“lib/fancybox/jquery.easing-1.3.pack.js”);
js(“lib/fancybox/jquery.fancybox-1.3.4.pack.js”);
js(“scripts/js/jquery.microaccordion.js”);
js(“scripts/js/jquery.stickyPanel.js”);
js(“scripts/js/guidely.js”);
js(“scripts/js/pto.js”);

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

谢谢大家的意见

@弗雷德里克-我在一家拥有188000名员工的公司工作。如果用户的浏览器中安装了导致我的页面崩溃的加载项,那么我对此无能为力。我也不认为这个问题是由任何附加组件引起的。这就是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>

js(“scripts/js/jquery.cookie.js”);
js(“lib/gritter/jquery.gritter.min.js”);
js(“lib/fancybox/jquery.easing-1.3.pack.js”);
js(“lib/fancybox/jquery.fancybox-1.3.4.pack.js”);
js(“scripts/js/jquery.microaccordion.js”);
js(“scripts/js/jquery.stickyPanel.js”);
js(“scripts/js/guidely.js”);
js(“scripts/js/pto.js”);
查看“用法”一节中的页面,您将清楚地看到代码的错误:

//文件以并行方式加载并按到达顺序执行 head.js(“file1.js”); head.js(“file2.js”); head.js(“file3.js”)

您的脚本是并行加载的,并且是在到达时执行的,这对jquery上的DEP来说是非常糟糕的,如果您希望执行它们,请使用以下命令:

head.js("scripts/js/jquery-1.6.2.min.js",
        "scripts/js/jquery.cookie.js",
        "lib/gritter/jquery.gritter.min.js"),
        "lib/fancybox/jquery.easing-1.3.pack.js",
        "lib/fancybox/jquery.fancybox-1.3.4.pack.js",
        "scripts/js/jquery.microaccordion.js",
        "scripts/js/jquery.stickyPanel.js",
        "scripts/js/guidely.js",
        "scripts/js/pto.js");

您需要调用js并列出要加载的资源列表,而不是只调用js几次。

可能需要引用您的
头。load
代码。
抛出一系列错误,表示无法识别对象。
特殊性将有所帮助。@damaniel,您说此代码只在IE8中失败。您测试它的其他浏览器是什么?你在另一台机器上试过IE8吗?你能在安全模式下重现问题吗(
-extoff
命令行选项)?@Shad-objects not recognized表示我在应用程序中使用的对象找不到应该加载的外部javascript文件,也不在IE8中的页面加载中。原谅我,我认为这是自我解释。@Frederic-我已经在IE9、Chrome、Safari和Firefox中进行了测试。不是opera,但我不关心opera,因为这是一个内部网站。我确实关心IE,因为这是我们的标准。我已经在其他10台机器上试过了。我正在使用IE8,在IE8中,有时似乎无法加载文件。我不知道你在安全模式下运行它是什么意思这是一个web应用程序嗨,我不想粗鲁,但你的回答可能会帮助解决你的特定问题,但它实际上并不能解决deps与headjs的一般问题,考虑阅读我的答案,也许会对你的评论。你所说的文档在一年前当我真的遇到这个问题时是不可用的,我非常确信加载外部文件逗号分隔不是头戴的一个特性。但是现在你能做到这一点很酷…谢谢你的输入。