Коллекция фильтров недоступна в * некоторых * версиях IE9 - PullRequest
0 голосов
/ 08 августа 2011

Я создал гаджет боковой панели Windows , который использует коллекцию filters на HTMLElements, чтобы я мог показывать эффекты перехода (между фотографиями ... гаджетпрограмма просмотра фотографий).

Однако в последней версии IE9 я обнаружил, что в некоторых случаях коллекция filters недоступна;и выдает ошибку при попытке доступа к нему.

Первоначально , я объясняю это странной проблемой, когда IE9 находится в стандартном режиме вместо Quirks по умолчанию (как в IE9, Microsoftудалил свойство style.filter в пользу style.opacity в попытке соответствовать стандартам с opacity ), однако после дальнейшей отладки это не так.

Во всех следующих тестах результаты возвращались одинаковыми как для гаджетов, которые выдавали ошибки, так и для гаджетов, которых не было:

  • document.documentMode равно 5
  • document.compatMode is BackCompat
  • typeof some_html_element.style.filter is string
  • typeof some_html_element.style.MsFilter is undefined

Однако следующий тест дал другие результаты:

  • typeof some_html_element.filters is объект в непрерывных гаджетах
  • typeof some_html_element.filters is unknown в сломанных гаджетах

Ниже приведен список используемых строк сломанных гаджетов:

Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; BRI/1; .NET CLR 1.1.4322; .NET4.0C)
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Win64; x64; Trident/5.0; .NET CLR 2.0.50727; SLCC2; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; Tablet PC 2.0)
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; MATP; InfoPath.2; FunWebProducts; .NET4.0C; yie9) 

Ниже приведен список строк рабочих гаджетов, используемых для работы:

Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Win64; x64; Trident/5.0; .NET CLR 2.0.50727; SLCC2; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; yie9)
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; MALN; InfoPath.2; .NET4.0C)

К сожалению, проблема меня так сильно сбивает с толку, что я даже не могу воспроизвести ее на своем компьютере для разработки;так что у меня не так много информации, чтобы продолжить.

Кто-нибудь сталкивался с чем-то подобным до этого / есть идеи, что может быть причиной этого?

Чтобы убедиться, что я ясно разъясняю свой вопрос (-ы):

  1. Кто-нибудь сталкивался с этим раньше / имеет какое-либо представление о том, что может быть причиной?
  2. Кто-нибудь знает какие-либо другие переменные, о которых я мог бы сообщить на сервер, чтобы попытаться диагностировать причину проблемы в дальнейшем?
  3. Bounty Edit : может ли кто-нибудь загрузить гаджет, воспроизвести проблему и опубликовать подробную информацию о своей среде Windows (версия ОС, установленные обновления) иих конфигурация IE (версия, плагины установлены)?

    Если гаджет сломан, при нажатии на любой значок состояния (загрузка счетчика, значок ошибки), отображаемый в левом верхнем углу гаджета, при наведении на него, вы увидите сообщение об ошибке «Несколько проблем (наиболее заметноотключенные переходы) были введены при установке Internet Explorer 9. Мы активно работаем над исправлением. "Вы заметите, что между изменениями фотографий нет никаких эффектов перехода (и несколько пользователей сообщили, что панель управления заголовком / автором / воспроизведением также не имеет прозрачности).

NB: Излишне говорить, что кросс-совместимость не проблема для меня.Мне нужно, чтобы гаджет работал в IE7, 8 и 9, вот и все (боковая панель Windows использует искаженную версию IE, установленную за кулисами).

Ответы [ 2 ]

2 голосов
/ 19 августа 2011

Я скачал гаджет и не вижу проблем. Я вижу переходы (растворение) и прозрачность панели управления также там.

Мой пользовательский агент: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)

Я использую Win7 x64 SP1, IE9 32bit. У меня не так много дополнений, только несколько, включая Shockwave, помощников Kaspersky AV Broswer, обработчик кэша MS Office, помощника WIndows Live Sign In.

Судя по неисправным пользовательским агентам, проблема в некоторых вариантах IE7. Также, если вы посмотрите на последний, в нем есть FunWebProducts, который говорит мне, что в системе есть другие компоненты (возможно, addons / activex), которые могут мешать работе.

Не уверен, но я подозреваю, что обновления Windows также могут быть причиной.

Трудно сказать точно, что является причиной этой проблемы, но вот несколько указателей:

  • В IE 7, 8 возникают проблемы с отображением некоторых изображений png (в основном это проблемы с альфа-каналом). Обходное решение для изящной обработки - проверка: if (!/MSIE (5\.5|6|7|8)/.test(navigator.userAgent) || typeof filters == 'unknown') return;, которая, вероятно, может помочь и вам в целом.
  • Разрывается ли он на определенных изображениях в сломанных системах?
  • Разбивается ли, когда в IE нет надстроек?
  • Что-нибудь регистрируется в журналах событий?
  • Имеет ли сломанная система последние обновления?
  • Если возможно, используйте Blackbox AppSight на одной из сломанных систем. Это даст вам массу информации о том, что происходит в системе. Когда все остальное терпит неудачу, эта программа находит удачу (из моего личного опыта).

За исключением последней пули, все остальное - неопределенные указатели. Если можете, используйте Blackbox. Уверен, вы сможете найти причину проблемы.

Похоже, что код не виновник, а сочетание факторов / компонентов в тех системах, которые вызывают это.

1 голос
/ 09 августа 2011

IE9 работает в режиме причуд, когда тип документа не указан.Однако вы можете заметить изменения в IE9, которые действуют по-другому, потому что они (наконец) были исправлены.IE9 не работает как IE8, который не работает как IE7, который не работает как IE6, и ни один из них не действует как любой из гораздо более современных браузеров.

Некоторые свойства фильтра теперь доступныправильно размещены в расширениях поставщиков с префиксом -ms.

...