javascript - IE8 中未定义的 JQuery

标签 javascript jquery internet-explorer

在我页面的底部,我是一个不执行异步调用的 jquery 函数。它在 Chrome、FireFox 中运行良好。但是在 IE8 中它说 jQuery 是未定义的。是什么原因造成的?

<script src="/scripts/jquery" type="text/javascript" charset="utf-8"></script>
    <script type="text/javascript">
        jQuery.ajax( "dev/js/templates", {
                async : false,
                success: function (data) {
                    $("#tpl_scripts").html(data);
                }

    })

    </script>

请注意,脚本是从 PHP 返回的, header 为

<?php 
$script = file_get_contents('/libs/scripts/jquery.1.8.2');
if (extension_loaded("zlib") && (ini_get("output_handler") != "ob_gzhandler")) {
            ini_set("zlib.output_compression", 1);
    }

    header('Content-type: text/javascript');

echo $script;
?>

最佳答案

这将是一个远景,但从您的评论来看,我知道发生了什么。

您说 PHP 将多个 JavaScript 文件连接在一起并一次性提供服务;这通常是个好主意(尽管我会选择静态编译并且仍然只使用 Web 服务器)。

Internet Explorer 因对对象中的逗号位置迂腐而臭名昭著,例如

var a = {
    x: 123,
    y: 456,
}

看到 y 属性声明后那个多余的逗号了吗?大多数浏览器并不关心这些内容,而且大多数 PHP 开发人员总是为了方便而使用它。

另一方面,Internet Explorer 对此进行了轰炸,并停止运行后面的其余代码。在你的情况下,如果它前面有你自己的代码,那可能包括 jQuery(因为 John Resig 永远不会犯那个“n00b”错误:))

关于javascript - IE8 中未定义的 JQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13421779/

相关文章:

javascript - 如何在 Angular2 中显示对象内的对象属性

javascript - 快速循环遍历 Javascript 数组

javascript - 如何从组件容器中设置 React 组件的样式?

javascript - 在 React 中检测 &lt;textarea&gt; 调整大小事件

html - IE 不着色 :before as table-cell, 为什么?

internet-explorer - 如何在IE6中使用半透明png图片

javascript - Material 日期选择器中的奇怪行为

javascript - 单击元素符号导航后设置间隔不起作用

Jquery DataTable - 在 ajax 之前处理并针对条件禁用 ajax 的函数

javascript - 优化 Internet Explorer 11 的滚动速度