在我的页面底部,我是一个不执行异步调用的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返回的,标题为
<?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;
?>
答案 0 :(得分:3)
这将是一个漫长的过程,但从你的评论来看,我知道发生了什么。
你说PHP将多个JavaScript文件连接在一起并一次性提供服务;这通常是一个好主意(虽然我会去静态编译,但仍然只使用Web服务器)。
Internet Explorer因在对象中逗号放置而迂腐而臭名昭着,例如
var a = {
x: 123,
y: 456,
}
在声明y
属性后看到无关的逗号?大多数浏览器并不关心这些东西,大多数PHP开发人员总是使用它以方便使用。
答案 1 :(得分:1)
尝试将.php添加到脚本标记的<script src="/scripts/jquery.php" type="text/javascript"></script>