Pixastic IE测试杀死IE9

问题描述:

Pixastic的“混合”过滤器似乎可以在IE9的演示网站上正常工作,但实际可下载的代码却没有。我相信这是由于“isIE”检测在pixastic.core.js文件在行426代码:Pixastic IE测试杀死IE9

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

每当Pixastic.Client.isIE()被调用,它拿起IE9与测试。如果我在这开始

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

的混合效果正常工作在IE9线204注释掉块。

有没有一个代码片段可以替代上面显示的ieIE功能,让IE的旧版本远离效果,同时允许IE9?或者,如果我发现错误,它在哪里,我如何修改它以适应?非常感谢。

我发现在这个答案IE9检测解决方案的帮助: Internet Explorer 9 Object Detection

更改“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; 
    } 
}