Почему библиотека plupload не работает в IE8

Я использую библиотеку plupload в своем приложении. Я могу нажать кнопку "Выбрать файл" и добавить файлы, используя Chrome и Firefox, но в IE8, когда я нажимаю кнопку "Выбрать файлы", ничего не происходит.

Вот моя реализация JS

    var url = webAPIHost.toLowerCase().replace("api/", "") + 'FileUpload/FileHandler';
    var total_uploads = 0;
    var uploaded = 0;

     uploaderExpense = new plupload.Uploader({
            runtimes: 'html5,html4',
            browse_button: 'pickfiles', // you can pass in id...
            container: document.getElementById('fileupload'), // ... or DOM Element itself
            url: url,
            flash_swf_url: '../js/Moxie.swf',
            silverlight_xap_url: '../js/Moxie.xap',
            multipart_params: {
                "expenseDetailID": "",
                "fileID": ""
            },
            drop_element: 'dropzone',
            filters: {
                max_file_size: '10mb',
                mime_types: [
                    {title: "Image files",extensions: "jpg,gif,png"}, 
                    {title: "Zip files",extensions: "zip"}
                ]
            },

            init: {
                PostInit: function() {
                    document.getElementById('filelist').innerHTML = '';
                },

                FilesAdded: function(up, files) {
                    plupload.each(files, function(file) {
                        var filename = "";

                        if ($.browser.msie && parseInt($.browser.version, 10) <= 9) {
                            filename = file.name;
                        }

                        document.getElementById('filelist').innerHTML += '<div id="' + file.id + '" class="uploadListItem"><span class="bf-delete-image" id="del' + file.id + '">X</span>' + filename + '<b></b></div>';

                        if (!$.browser.msie || parseInt($.browser.version, 10) >= 10) {
                            for (var i = 0; i < files.length; i++) {
                                showImagePreview(files[i]);
                            }
                        }

                    });
                    $('#isAttachedToDocWrap').hide();
                },
                FilesRemoved: function(up, file) {
                    if (up.files.length == 0) {
                        $('#isAttachedToDocWrap').show();
                    }
                },
                UploadProgress: function(up, file) {
                    document.getElementById(file.id).getElementsByTagName('b')[0].innerHTML = '<span>' + file.percent + "%</span>";
                },

                Error: function(up, err) {
                }
            }
        });

Вот HTML разделы

<div id="filelist"></div>
<div id="fileupload" style="position: relative;">
  <input type="button" id="pickfiles" value="Choose File" style="width: 100px; position: relative; z-index: 1;">

  <div id="html5_18n9h5j961i36ravev1b7t1vm23_container" class="moxie-shim moxie-shim-html5" style="position: absolute; top: 0px; left: 0px; width: 0px; height: 0px; overflow: hidden; z-index: 0;"><input id="html5_18n9h5j961i36ravev1b7t1vm23" type="file" style="font-size: 999px; opacity: 0; position: absolute; top: 0px; left: 0px; width: 100%; height: 100%;" multiple="" accept="image/jpeg,image/gif,image/png,application/zip"></div>
</div>

Как вы можете видеть, "библиотека plupload" создала контейнер div html5, что означает, что код есть, но IE не показывает его и не открывает диалоговое окно файла. Не знаю почему?

Библиотека загрузчиков имеет пример страницы, которая отлично работает на IE. Это означает, что что-то не так с реализацией

Я не могу положить руку на то, что здесь не так.

1 ответ

Решение

Когда я изменил время выполнения для поддержки вспышки и серебра, вот так runtimes: 'html5,flash,silverlight,html4'; Это вроде сработало. Я имею в виду, что мне нужно многократно нажимать кнопку "Выбрать файлы", прежде чем откроется диалоговое окно. это реакция очень и очень медленная. Пока это временное решение, так как я работаю на своем локальном хосте.

во время тестирования я столкнулся с ошибкой безопасности. Я нашел хорошую информацию о времени выполнения IE8 и IE9 plupload здесь.

Другие вопросы по тегам