swfupload больше не работает под IE - PullRequest
8 голосов
/ 05 февраля 2010

http://demo.swfupload.org/v250beta2/simpledemo/index.php, похоже, больше не работает в IE. Есть ли исправление для этого?

Вместо этого я получаю красный крестик, и кнопка не активируется.

Я использую IE 8.

Ответы [ 3 ]

11 голосов
/ 18 апреля 2012

Я мог воспроизвести проблему с 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.

2 голосов
/ 30 августа 2010

Проблема не только у вас. Это также на самом сайте swfuploader. Взгляните: http://demo.swfupload.org/v220/simpledemo/index.php

1 голос
/ 05 февраля 2010

Возможно, у вас есть дополнение, которое мешает вам. Попробуйте запустить IE 8 в режиме «Без дополнений». От http://support.microsoft.com/kb/936213:

" Метод 3: Запустите Internet Explorer в режиме« Без дополнений »

Надстройки Internet Explorer, такие как элементы управления ActiveX и панели инструментов браузера, используются некоторыми веб-сайтами для обеспечения улучшенного просмотра. Ошибка может возникнуть, если надстройка повреждена или если надстройка конфликтует с Internet Explorer. Чтобы определить, вызвана ли ошибка надстройкой, запустите Internet Explorer в режиме «Без надстроек». Для этого выполните следующие действия:

  1. Нажмите Пуск , а затем введите Internet Explorer в поле Начать поиск .
  2. Нажмите Internet Explorer (без надстроек) . Internet Explorer открывается без надстроек, панелей инструментов и плагинов.
  3. Проверьте Internet Explorer, чтобы убедиться, что он работает правильно. Если проблемы по-прежнему возникают, попробуйте метод 4.

Если ошибки не возникают, проблема вызвана одной из надстроек, которые обычно загружаются вместе с Internet Explorer. В этом случае используйте один из следующих параметров.

Вариант 1. Сброс Internet Explorer

Сброс Internet Explorer до его конфигурации по умолчанию. Этот шаг также отключит все надстройки, плагины или панели инструментов, которые установлены. Хотя это решение является быстрым, оно также означает, что, если вы хотите использовать какие-либо из этих надстроек в будущем, их необходимо переустановить. Для сброса настроек Internet Explorer используйте метод 4.

Вариант 2. Используйте инструмент «Управление надстройками», чтобы определить, какая надстройка вызывает проблему

Используйте инструмент «Управление надстройками» в Internet Explorer, чтобы отдельно отключить каждую надстройку, чтобы определить, какая надстройка вызывает ошибки. Для этого выполните следующие действия:

Internet Explorer 8

  1. Откройте Internet Explorer 8.
  2. Нажмите Инструменты , а затем нажмите Управление надстройками .
  3. В раскрывающемся меню Показать выберите Все надстройки , чтобы отобразить все надстройки, установленные на компьютере.
  4. Для каждого элемента в этом списке выберите надстройку, а затем нажмите Отключить в информационном окне.
  5. Когда вы отключите все элементы в этом списке, нажмите OK .
  6. Выйдите и перезапустите Internet Explorer.
  7. Если проблемы не повторяются, повторите шаги с 1 по 3.
  8. Нажмите Включить для одного дополнения.
  9. Повторяйте шаги с 6 по 8, пока не определите, какая надстройка вызывает ошибки.

После того, как вы использовали этот процесс, чтобы определить, какая надстройка вызывает ошибки, вы можете отключить эту надстройку. Или вы можете удалить программное обеспечение, которое устанавливает надстройку. Мы также рекомендуем вам обратиться к поставщику программного обеспечения, который предоставил надстройку для устранения неполадок и поддержки. "

...