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;
}
}