【问题标题】:Safari v11+ not working with blueimp/jQuery-File-Upload pluginSafari v11+ 不适用于 blueimp/jQuery-File-Upload 插件
【发布时间】:2019-11-16 23:16:07
【问题描述】:

我现在很难理解为什么我无法让 blueimp/jQuery-file-upload 插件与桌面 Safari 浏览器一起使用。我的 QA 使用 v11.2 (MacOS El Capitan) 进行了测试,我已经在 v13.0.3 (macOS Mojave 10.14.6) 上进行了测试。 Safari 似乎没有调用 .fileupload() 函数。但是,该插件在 Chrome 和 Firefox 中都可以正常工作。

这是我用于测试的基本代码。

HTML

<input class="upload" type="file" name="FileData" id="fileupload-remove-items" data-url="/analysis/upload"/>

JS:

  $('#fileupload-remove-items').fileupload({
        dataType: 'json',
        start: function (e, data){
            console.log('start'); // fires in Chrome & Firefox browsers, but *not* Safari
        },
        progress: function (e, data){
            console.log('progress');  // fires in Chrome & Firefox browsers, but *not* Safari
        },
        done: function (e, data) {
            console.log('done'); 
        }
    }); 

在 Firefox 和 Chrome 中,console.log() 会按预期触发。但在 Safari 中什么也没有发生。我无法在 repo 中找到任何相关的 SO 帖子或错误报告来回答这个问题,所以我现在在这里联系。其他人可以复制这个问题吗?有趣的是,我能够使用 Safari 从demo page 上传文件,但到目前为止查看演示代码并不清楚这个简单的用例是如何在 Safari 上始终失败的。

非常欢迎任何帮助。提前谢谢!

编辑:我应该注意Safari 被列为该插件支持的浏览器。我正在使用最新版本的插件 v10.3.0。

【问题讨论】:

  • 对于后代,我似乎遇到了一个相关的错误,在这里讨论(但未解决):forums.envato.com/t/…
  • 我还确保这不是与我的输入被隐藏有关的问题:stackoverflow.com/questions/24980459/…
  • 另一个花絮:我已经用 BrowserStack 验证了这个确实适用于旧版 Safari 浏览器:

标签: jquery ajax safari upload blueimp


【解决方案1】:

在创建了一个在 Safari v11+ 中确实有效的 jsFiddle 之后,我终于找到了罪魁祸首。通过剖析我的网站,我发现了差异在哪里。获胜者是... 我的旧网站使用的 jQuery 版本 - 特别是 jQuery v1.7.2。当我将旧版本换成更新的 v2.2.4 时,Safari v11+ 立即开始运行。它实际上也适用于 jQuery v1.8。很容易错过,因为 Readme.md 将 强制要求 列为 jQuery v1.6+。

我会让作者知道,对于较新的 Safari 浏览器,情况不再如此。我希望这可以在此期间节省一些人的时间,如果有人还在使用 1.7.2,那就是 ;)

阿德兰特!

【讨论】:

  • 我遇到了类似的问题,这次 Safari 版本是 12.1.2 和 13。jQuery 版本是 3.3.1。虽然它允许我浏览和选择文件,但单击“上传”按钮没有任何作用。没有控制台错误或任何其他解决此问题的线索。您能分享一下您对此的看法吗?
猜你喜欢
  • 2015-09-13
  • 1970-01-01
  • 2015-03-06
  • 1970-01-01
  • 1970-01-01
  • 2013-11-12
  • 2011-09-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多