指针事件:none,filter,适用于ie8和任何地方,而不是ie9



正如我在这里看到的,过滤器可以用来模拟的跨浏览器版本

pointer-events: none;

然而,这在IE9中不起作用,在IE9的"模拟IE8"版本中也不起作用。然而,IE8的本机安装可以很好地处理它。有什么解决方案可以让它适用于IE9吗?

你说得对-AlphaImageLoader过滤器已从IE9中删除这样做是为了不与符合标准的方法相冲突。在这种情况下,pointer-events: none,它现在在IE9中工作。

如果您使用条件注释来针对过滤器修复的IE,请将其更改为仅针对IE8及以下版本。尝试将<!--[if IE]>更改为<!--[if lte IE 8]>

编辑:从那以后,我又遇到了这个问题,pointer-events: none似乎在IE9中不起作用(无论如何都不适用于HTML元素)。我认为这是可行的,但在重新测试时,这两种方法都不适用于IE9上的点击。也许我的IE9处于兼容模式。

这一点都不理想,但你可以通过<meta>标签开关迫使IE9进入IE8模式:

 <!--[if ie 9]><meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8"><![endif]-->

对错误信息深表歉意,我会继续调查此事。

2012年9月24日更新:

非常有用的caniuse.com提供了更多关于pointer-events for HTML的信息。IE10中的支持仍然未知,Opera似乎也不支持此属性。我建议您暂时不要使用pointer-events,除非您专门针对Webkit/Mozilla。

指针事件仅适用于html中的webkit、mozilla浏览器。

然而,指针事件适用于InternetExplorer中的svg元素。

有一个很好的modernizr插件https://github.com/ausi/Feature-detection-technique-for-pointer-events/blob/master/modernizr-pointerevents.min.js测试指针事件的存在

如果您使用指针事件只是在顶部添加某种纹理,则可以用svg元素替换div

if( !Modernizr.pointerevents )
{
    $('#texture').replaceWith('<svg id="texture"/>');
}

最新更新