IE11 JQuery 错误?
IE11 JQuery error?
我的代码在 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 );
} );
这是我的 header 标签,包含所有内容:
<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 的其他人不会遇到我的页面问题 运行?有办法解决这个问题吗?提前致谢。
兼容性视图
当 Internet Explorer 在兼容性视图中运行时,它会模拟与最新版本 jQuery 不兼容的旧版本,例如 IE8(仅兼容 jQuery 的 1.x 版本使用旧版本的 IE)。
检查兼容性视图是否有问题
当您在 Internet Explorer 中按 F12 键时,应该会调出开发人员工具。在工具栏的右上角附近,您应该找到一个下拉菜单,可以让您在 Edge、10、9、8、7 和 5 之间切换。切换它将导致页面使用新的文档模式刷新。如果您切换到 Edge 并且仍然收到 jQuery 错误,那么您可以排除兼容性视图的问题。
确保页面不会显示在兼容性视图中
在此处查看有关为 Internet Explorer 指定文档模式的文档:https://msdn.microsoft.com/en-US/library/jj676915.aspx
您还可以尝试通过将 <meta>
标记插入 HTML 的页眉(它应该是页眉中的第一个标记)来强制 IE11 在边缘模式下显示,如下所示:
<html>
<head>
<meta http-equiv="x-ua-compatible" content="IE=edge">
...
这会指示 Internet Explorer 明确使用该文档模式。
如果您的 jquery 引用存储在作为包含引用的 .jspf 文件中,您也会遇到问题。 IBM Websphere 会将 jspf 缓存在服务器上的临时文件夹中,即使 ear/war 部署也不会替换它们。有必要从临时文件夹中删除这些文件。
我的代码在 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 );
} );
这是我的 header 标签,包含所有内容:
<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 的其他人不会遇到我的页面问题 运行?有办法解决这个问题吗?提前致谢。
兼容性视图
当 Internet Explorer 在兼容性视图中运行时,它会模拟与最新版本 jQuery 不兼容的旧版本,例如 IE8(仅兼容 jQuery 的 1.x 版本使用旧版本的 IE)。
检查兼容性视图是否有问题
当您在 Internet Explorer 中按 F12 键时,应该会调出开发人员工具。在工具栏的右上角附近,您应该找到一个下拉菜单,可以让您在 Edge、10、9、8、7 和 5 之间切换。切换它将导致页面使用新的文档模式刷新。如果您切换到 Edge 并且仍然收到 jQuery 错误,那么您可以排除兼容性视图的问题。
确保页面不会显示在兼容性视图中
在此处查看有关为 Internet Explorer 指定文档模式的文档:https://msdn.microsoft.com/en-US/library/jj676915.aspx
您还可以尝试通过将 <meta>
标记插入 HTML 的页眉(它应该是页眉中的第一个标记)来强制 IE11 在边缘模式下显示,如下所示:
<html>
<head>
<meta http-equiv="x-ua-compatible" content="IE=edge">
...
这会指示 Internet Explorer 明确使用该文档模式。
如果您的 jquery 引用存储在作为包含引用的 .jspf 文件中,您也会遇到问题。 IBM Websphere 会将 jspf 缓存在服务器上的临时文件夹中,即使 ear/war 部署也不会替换它们。有必要从临时文件夹中删除这些文件。