swfupload больше не работает под IE
http://demo.swfupload.org/v250beta2/simpledemo/index.php, похоже, больше не работает в IE. можно ли это исправить?
Вместо этого я получаю красный крест, и кнопка не активируется.
Я использую IE 8.
3 ответа
Я мог воспроизвести проблему с IE9, работающим на Windows 7, но только на виртуальных машинах. В любом случае, я смог применить quick'n'dirty для исправления проблемы, исправив swfupload.js (v2.2.0), где-то около строки 230, благодаря этому посту.
SWFUpload.prototype.getFlashHTML = function () {
// Flash Satay object syntax: http://www.alistapart.com/articles/flashsatay
// ADD THESE LINES -->
var iefix = '';
if(navigator.userAgent.search(/MSIE/) > -1){
iefix = 'classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"';
}
// MODIFY THIS LINE: (add ' + iefix + ')
return ['<object ' + iefix + ' id="', this.movieName, '" type="application/x-shockwave-flash" data="', this.settings.flash_url, '" width="', this.settings.button_width, '" height="', this.settings.button_height, '" class="swfupload">',
'<param name="wmode" value="', this.settings.button_window_mode, '" />',
...
Кажется, что очень похожее исправление может помочь для 2.5.0.
РЕДАКТИРОВАТЬ: кажется, что это исправление было недостаточно для некоторых виртуальных машин, которые имеют надстройку IE под названием "VMware Adobe Flash Optimizer". По какой-то причине оптимизатор превращает Flash-фильм в белое поле (которое на самом деле можно кликнуть, если вы знаете, что щелкнуть по нему).
Плохая новость заключается в том, что я не нашел способа обнаружить или отключить присутствие надстройки оптимизатора в моем коде. Поэтому я не могу быть уверен, видит ли пользователь на самом деле кнопку или только белое поле. Я не нашел хорошего обходного пути, только добавил запасную ссылку в форму загрузки без Flash.
Проблема не только у вас. Это также на самом сайте swfuploader. Посмотрите: http://demo.swfupload.org/v220/simpledemo/index.php
У вас может быть дополнение, которое мешает вам. Попробуйте запустить IE 8 в режиме "Без дополнений". С http://support.microsoft.com/kb/936213:
"Метод 3: Запустите Internet Explorer в режиме" Нет дополнений "
Надстройки Internet Explorer, такие как элементы управления ActiveX и панели инструментов браузера, используются некоторыми веб-сайтами для обеспечения улучшенного просмотра. Ошибка может произойти, если надстройка повреждена или если надстройка конфликтует с Internet Explorer. Чтобы определить, вызвана ли ошибка надстройкой, запустите Internet Explorer в режиме "Без надстроек". Для этого выполните следующие действия:
- Нажмите Пуск, а затем введите Internet Explorer в поле Начать поиск.
- Нажмите Internet Explorer (без надстроек). Internet Explorer открывается без надстроек, панелей инструментов и плагинов.
- Протестируйте Internet Explorer, чтобы убедиться, что он работает правильно. Если проблемы все еще возникают, попробуйте метод 4.
Если ошибки не возникают, проблема вызвана одной из надстроек, которые обычно загружаются вместе с Internet Explorer. В этом случае используйте один из следующих вариантов.
Вариант 1. Сброс Internet Explorer
Сбросьте Internet Explorer к его конфигурации по умолчанию. Этот шаг также отключит все надстройки, плагины или панели инструментов, которые установлены. Хотя это решение быстрое, оно также означает, что, если вы хотите использовать какие-либо из этих надстроек в будущем, их необходимо переустановить. Для сброса настроек Internet Explorer используйте метод 4.
Вариант 2. Используйте инструмент "Управление надстройками", чтобы определить, какая надстройка вызывает проблему.
Используйте инструмент "Управление надстройками" в Internet Explorer, чтобы индивидуально отключить каждую надстройку, чтобы определить, какая надстройка вызывает ошибки. Для этого выполните следующие действия:
Internet Explorer 8
- Откройте Internet Explorer 8.
- Нажмите Инструменты, а затем нажмите Управление надстройками.
- В раскрывающемся меню Показать выберите Все надстройки, чтобы отобразить все надстройки, установленные на компьютере.
- Для каждого элемента в этом списке выберите надстройку, а затем нажмите " Отключить" в окне "Информация".
- Когда вы отключите все элементы в этом списке, нажмите OK.
- Выйдите и перезапустите Internet Explorer.
- Если проблемы не повторяются, повторите шаги с 1 по 3.
- Нажмите Включить для одного дополнения.
- Повторяйте шаги с 6 по 8, пока не определите, какая надстройка вызывает ошибки.
После того, как вы использовали этот процесс, чтобы определить, какая надстройка вызывает ошибки, вы можете отключить эту надстройку. Или вы можете удалить программное обеспечение, которое устанавливает надстройку. Мы также рекомендуем вам обратиться к поставщику программного обеспечения, который предоставил надстройку для устранения неполадок и поддержки ".