Перетаскивание файла не работает в IE 11 через iframe - PullRequest
0 голосов
/ 25 апреля 2018

Я работаю над базовой функциональностью перетаскивания, и она отлично работает в других браузерах, но не в IE 11. Я вызываю следующий html-код с iframe в другом проекте.

Работает нормально без 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>

1 Ответ

0 голосов
/ 07 мая 2018

Я протестировал ваш код с некоторыми изменениями и заметил, что браузер говорит: «Вы уверены, что хотите покинуть эту страницу?». Вы можете решить эту проблему несколькими способами, такими как

  1. Вы можете изменить совместимость браузера с IE11 на IE10
  2. Для этого необходимо установить параметр 'forceIframeTransport: true', чтобы заставить весь браузер использовать транспортный модуль iframe для загрузки файлов, и установить параметр перенаправления для получения результата удаления

ваша функция загрузки файлов должна быть

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