通过iframe拖放文件在IE 11中无法正常工作

Sre*_*ree 1 javascript iframe blueimp jquery-file-upload internet-explorer-11

我正在研究基本的拖放功能,它在其他浏览器中运行良好但在IE 11中运行不正常.我在另一个项目中使用iframe调用html代码.

没有iframe但没有iframe,它工作正常.任何人都可以为此提供解决方案吗?

提前致谢.

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Upload</title>
<meta name="description" content="File Upload ">
<meta name="viewport" content="width=device-width">
</head>
<body>
  <div class="container">  
    <table><tbody> <tr><td><span id="upload" >
                          <span>Upload</span><input id="fileupload" type="file" name="fileupload">
                    </span></td><td id="filename"></td><td id="percent" style="padding-left: 35px;"></td></tr>
    </tbody>
</table>
</div>
    <script
    src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<script
    src="https://raw.githubusercontent.com/blueimp/jQuery-File-Upload/master/js/vendor/jquery.ui.widget.js"></script>
<script
    src="https://raw.githubusercontent.com/blueimp/jQuery-File-Upload/master/js/jquery.iframe-transport.js"></script>
 <script
    src="https://raw.githubusercontent.com/blueimp/jQuery-File-Upload/master/js/jquery.fileupload.js"></script> 

<script type="text/javascript">
    $(document).ready(function() {
        $(document).bind('drop dragover', function(e) {
            /* e.preventDefault(); */
        });
        if(typeof window.parent.fileid  == 'undefined'){
            window.parent.fileid = "";
        }            
        var params = // some prams
        $('#fileupload').fileupload({
            dataType : 'json',
            formData : params,
            url : '${contextpath}/upload', 
            autoUpload: true,
        });         
        $('#fileupload')
        .bind('fileuploaddone', function (e, data) {          
            //uploaded successfully
       }, 100);
        }).bind('fileuploadfail', function (e, data) {
        // upload is fail
        })  
    });

</script>
</body> 
</html>
Run Code Online (Sandbox Code Playgroud)

MK *_*lan 5

我通过一些重新安排测试了你的代码,我注意到浏览器上写着"你确定要离开这个页面吗?".您可以通过某些方式解决此问题,例如

  1. 您可以将浏览器兼容性从IE11更改为IE10
  2. Yoy需要设置'forceIframeTransport:true'选项以强制所有浏览器使用iframe传输模块进行文件上传,并设置重定向选项以检索删除结果

你的文件上传功能应该是

$('#fileupload').fileupload({
            dataType : 'json',
            formData : params,
            url : '${contextpath}/upload', 
            autoUpload: true,
            forceIframeTransport: true,
            'redirect',
        });
Run Code Online (Sandbox Code Playgroud)