Pixastic的"blend"滤镜似乎在IE9的演示网站上工作得很好,但实际的可下载代码却没有。我相信这是由于pixastic.core.js文件中的"isIE"检测代码在第426行:
isIE : function() {
return !!document.all && !!window.attachEvent && !window.opera;
}
无论何时调用Pixastic.Client.isIE(),它都会通过该测试拾取IE9。如果我注释掉第204行
开头的代码块if (imageIsCanvas && Pixastic.Client.isIE()) {
混合效果在IE9中效果很好。
是否有一个片段,我可以取代"ieIE"函数上面显示保持旧版本的IE远离效果,同时允许IE9?或者,如果我的检测错误,它在哪里,我如何修改它以适应?多谢。
我在这个答案中找到了检测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;
}
}