gpt4 book ai didi

jQuery-File-Upload iframe 后备检测

转载 作者:行者123 更新时间:2023-12-01 08:05:45 25 4
gpt4 key购买 nike

使用 blueimp 的 jQuery-File-Upload https://github.com/blueimp/jQuery-File-Upload

我的应用程序在许多旧版浏览器上运行。文件上传有很多兼容性限制。我想简单地检测文件 uploader 何时优雅地退回到使用 iframe 传输。我想在 jQuery 中检测到这一点,其中使用的文件上传类似于此示例:

var using_iframe_transport = false;

this_file_input.fileupload({
dataType: 'json',
url: "http://api.cloudinary.com/v1_1/my_account/image/upload",

//as we send the file upload, record whether it is using iframe
send: function (e, data) {
if (e.iframe_fallback){ //is there a variable like this that exists in the plugin?
using_iframe_transport = true;
}
}
});//end fileupload

if (using_iframe_transport){
//do something
}

可以在“progress”、“done”或“always”回调中使用此代码:

...
progress: function(e){ //or 'done' or 'always'
if($('iframe').length){
using_iframe_transport = true;
}
}
...

然而,这些回调并不总是如 https://github.com/blueimp/jQuery-File-Upload/issues/461#issuecomment-9299307 中报告的那样进行。

我最关心的是支持 IE6 和 Android 2.3 默认浏览器。谢谢!

最佳答案

貌似控制是否使用iframe的方法是_initDataSettings,它通过_isXHRUpload来判断是否使用。由于这是一个私有(private)方法,无法在外部调用,因此您可以使用以下内容:

options = this_file_input.fileupload('option');
use_xhr = !options.forceIframeTransport &&
((!options.multipart && $.support.xhrFileUpload) ||
$.support.xhrFormDataFileUpload);

如果 use_xhr 为 false,则使用 iframe 传输。

或者,如果您同意等待发送事件,您可以查看 data.dataType,如果它以“iframe”开头,则您正在使用 iframe 后备。

关于jQuery-File-Upload iframe 后备检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16835226/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com