我对最新版本的masonry有一个奇怪的问题。之前我已经让它正常工作了,但是对于一个新的项目,我下载了jQuery和Masonry的最新版本,一切都很好。除了IE7不会加载Masonry库,因为插件中的错误,所以看起来是这样。
我在IE7控制台中得到了这个错误:

这是我的测试文件的全部代码,所以任何人都可以快速重现它:
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
<script type='text/javascript' src='jquery-1.10.1.min.js'></script>
<script type='text/javascript' src='masonry.pkgd.min.js?ver=3.0.0'></script>
</head>
<body>
Test
</body>
</html>我是不是遗漏了一些明显的东西,或者Masonry不再与IE7兼容?我在网站上没有找到任何关于这个的东西。
如您所见,我使用的是jQuery 1.10.1和Masonry 3.0.0
编辑:我尝试了非最小化版本,我得到了
SCRIPT5009: 'Element' is undefined
masonry.pkgd.js, line 914 character 1很奇怪,因为在那一行上没有叫做Element的东西。
下面是masonry.pkgd.js的一段代码:
911 /*jshint browser: true, strict: true, undef: true, unused: true */
912 /*global define: false */
913
914 ( function( global, ElemProto ) {
915
916 'use strict';
917
918 var matchesMethod = ( function() {
919 // check un-prefixed
920 if ( ElemProto.matchesSelector ) {
921 return 'matchesSelector';
922 }发布于 2013-06-19 01:12:13
Read about the library support on their FAQ page
Masonry的浏览器支持是什么?
Masonry适用于IE8+和现代浏览器,包括iOS和安卓上的移动浏览器。
发布于 2015-05-12 15:11:34
如果这对任何人仍然有用,Masonry真的不支持IE7 -在github - https://github.com/desandro/masonry/issues/356上也有一个无法修复的问题。尽管如此,我还是想防止IE7用户完全破坏javascript,所以我添加了以下内容(如果您使用masonry作为jQuery插件,这会很有帮助):
if(navigator.appVersion.indexOf("MSIE 7.")!=-1{
$.fn.masonry = function() { };
}else{
<!-- ORIGINAL MASONRY CODE GOES HERE -->
...
...
}这将在IE7情况下创建一个名为Masonry的空jQuery插件,并将防止脚本破坏页面的整个javascript (当然,Masonry存根在这种情况下不会做任何事情,但至少我们避免了错误,其他东西仍然可以工作)
https://stackoverflow.com/questions/17174668
复制相似问题