2

我对最新版本的砌体有一个奇怪的问题。以前可以使用,但是对于一个新项目,我下载了 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        }
4

2 回答 2

0

在他们的常见问题页面上阅读有关图书馆支持的信息

Masonry 的浏览器支持是什么?

Masonry 适用于IE8+和现代浏览器,包括 iOS 和 Android 上的移动浏览器。

于 2013-06-18T17:12:12.870 回答
0

如果这仍然对任何人有用,Masonry 真的不支持 IE7 - 在 github 上还有一个不会修复的问题 - https://github.com/desandro/masonry/issues/356。我仍然想防止 javascript 对 IE7 用户完全崩溃,所以我添加了以下内容(如果您使用 masonry 作为 jQuery 插件,这会有所帮助):

if(navigator.appVersion.indexOf("MSIE 7.")!=-1{
      $.fn.masonry = function() { };
}else{
      <!-- ORIGINAL MASONRY CODE GOES HERE -->
      ...
      ...
}

这将在 IE7 的情况下创建一个名为 Masonry 的空 jQuery 插件,并防止脚本破坏页面的整个 javascript(当然 Masonry 存根在那种情况下什么都不做,但至少我们防止了错误,其他东西仍然可以工作)

于 2015-05-12T07:11:33.913 回答