У меня есть простое веб-приложение, которое использует filerader api в HTML5 для принятия загрузки файлов с помощью перетаскивания.IE10 не похоже на событие drop при отбрасывании файла
При перетаскивании файла на веб-страницу будет происходить правильное событие перетаскивания, но когда я удаляю файл, IE просто открывает его, а не позволяет JS обрабатывать его.
Код капли очень проста:
this.addEventListener("drop", function(event) {
event.stopPropagation();
event.preventDefault();
Self.drop(event); //this event is not hit. IE just opens the file!
}, false);
Это конкретное ограничение IE10 или я мог бы сделать что-то не так?
Благодаря
Я обнаружил, что в chrome я мог бы использовать перетаскивание с точной обработкой только «dragover» и «drop», но в IE10 мне также нужно было обрабатывать «dragenter» и предотвращать дефолт, иначе мое событие «dragover» никогда не запускалось ... – markt
Дополнительно: Если вы не видите свойства 'files' при попытке вашего собственного кода, но оно работает с Elijah's, вы, вероятно, запускаете тест на своем ** локальном ** (intranet) веб-сервере. По умолчанию IE10 отключает мозг, чтобы обслуживать содержимое интрасети в представлении совместимости (в), что отключает такие функции, как свойство 'files' объекта' dataTransfer'. В меню гаечного ключа перейдите в раздел «Параметры просмотра совместимости» и снимите флажок «Показывать сайты интрасети в окне совместимости». Eejits. –
Если вы не контролируете конфигурацию IE, вы можете сделать это в своем HTML или через пользовательские заголовки HTTP. В HTML вы можете поместить это в ** очень верхнюю часть 'head':' '(Предположительно, некоторые версии будут игнорировать это если ничего, кроме 'title'. Конечно, они будут, потому что это не сломано. Дальше работает для меня в IE11, нет удобного тестового окна IE10, но я бы поставил его наверху безопасность). Или, конечно же, настройте сервер для отправки этого заголовка в HTTP. –