我的代码在Firefox和Chrome中运行良好,但在IE 11中运行不正常。我收到了下一条错误消息:
1) SCRIPT5009: '$' is undefined
For this line of code:
$.extend({
)}
2)SCRIPT5009: 'jQuery' is undefined
// Browser globals
factory( jQuery );
3)SCRIPT1010: Expected identifier
.catch( function( error ) {
jQuery.readyException( error );
} );
这是我的标题标记,其中包含所有包含:
<head>
<script type="text/javascript" src="jquery/jquery-3.1.1.js"></script>
<script type="text/javascript" src="jquery/jquery-ui.js"></script>
<script type="text/javascript" src="jquery/JQuery_alert.js"></script>
<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css">
<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.structure.css">
<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.theme.css">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
我发现如果我在IE中打开我的开发工具,然后在右上角单击文档模式并切换到Edge我的代码,上面的所有包含工作正常。所以我的问题是什么是Edge?我如何确保使用IE的其他人不会在运行我的页面时出现问题?有办法解决这个问题吗?提前致谢。
答案 0 :(得分:17)
兼容性视图
当Internet Explorer在兼容性视图中运行时,它会模拟旧版本,例如IE8,它与最新版本的jQuery不兼容(只有1.x版本的jQuery与旧版本的IE兼容)。
检查兼容性视图是否为问题
当您在Internet Explorer中点击F12时,它应该显示开发人员工具。在工具栏的右上角附近,您应找到一个下拉菜单,可让您在Edge,10,9,8,7和5之间切换。切换它将使页面使用新文档模式进行刷新。如果切换到Edge并且仍然遇到jQuery错误,那么可以排除兼容性视图作为问题。
确保页面不会显示在兼容性视图
中请查看此处有关为Internet Explorer指定文档模式的文档:https://msdn.microsoft.com/en-US/library/jj676915.aspx
您还可以尝试通过在HTML的标题中插入<meta>
标记(它应该是标题中的第一个标记)来强制IE11以边缘模式显示,如下所示:
<html>
<head>
<meta http-equiv="x-ua-compatible" content="IE=edge">
...
这指示Internet Explorer明确使用该文档模式。
答案 1 :(得分:0)
如果您的jquery引用存储在包含为引用的.jspf文件中,您也会遇到问题。 IBM Websphere将把jspf缓存在服务器上的temp文件夹中,即使用ear / war部署也不会替换。有必要从temp文件夹中删除这些文件。