Pixastic IE тест убивает IE9 - PullRequest
       4

Pixastic IE тест убивает IE9

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

Фильтр Pixlast «blend», кажется, прекрасно работает на их демонстрационном сайте в IE9, но реальный загружаемый код - нет.Я полагаю, что это связано с кодом обнаружения "isIE" в файле pixastic.core.js в строке 426:

isIE : function() {
  return !!document.all && !!window.attachEvent && !window.opera;
}

Когда вызывается Pixastic.Client.isIE (), он принимает IE9 с этим тестом,Если я закомментирую блок в строке 204, который начинается

if (imageIsCanvas && Pixastic.Client.isIE()) {

, эффект смешивания прекрасно работает в IE9.

Есть ли фрагмент, который я мог бы заменить показанной выше функцией "ieIE", чтобы держать старые версии IE подальше от эффектов, допуская IE9?Или, если у меня неправильное обнаружение, где оно находится и как я могу изменить его в соответствии с требованиями?Большое спасибо.

1 Ответ

4 голосов
/ 22 октября 2012

Я нашел помощь в решении проблемы обнаружения ie9 в этом ответе: Обнаружение объектов Internet Explorer 9

Изменение функции «isIE» с помощью следующего фрагмента кода работало для меня.Это не очень понятное решение, но решает проблему:

isIE : function() {
    var ie = (function(){
        var undef,
        v = 3,
        div = document.createElement('div'),
        all = div.getElementsByTagName('i');

        while (
                div.innerHTML = '<!--[if gt IE ' + (++v) + ']><i></i><![endif]-->',
                all[0]
        );

        return v > 4 ? v : undef;

    }());

    if (ie >= 9) {
        return false;
    } else {
        return !!document.all && !!window.attachEvent && !window.opera;
    }
}
...