【发布时间】:2011-06-28 13:39:31
【问题描述】:
As I have seen here,一个过滤器可以用来模拟跨浏览器的版本
pointer-events: none;
但是,这在 IE9 中不起作用,在 IE9 的“模拟 IE8”版本中也不起作用。但是,IE8 的本机安装可以很好地处理它。是否有任何解决方案使其适用于 IE9?
【问题讨论】:
标签: css
As I have seen here,一个过滤器可以用来模拟跨浏览器的版本
pointer-events: none;
但是,这在 IE9 中不起作用,在 IE9 的“模拟 IE8”版本中也不起作用。但是,IE8 的本机安装可以很好地处理它。是否有任何解决方案使其适用于 IE9?
【问题讨论】:
标签: css
你是对的 - AlphaImageLoader 过滤器已从 IE9 中删除。 这样做是为了不与符合标准的方法发生冲突。在这种情况下,pointer-events: none,now works in IE9。
如果您使用条件 cmets 来针对 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 有更多关于 HTML 的pointer-events 的信息。 IE10 的支持仍然未知,Opera 似乎也不支持此属性。我建议您暂时不要使用pointer-events,除非您专门针对 Webkit/Mozilla。
【讨论】:
pointer-events 仅适用于 webkit、mozilla 浏览器中的 html。
然而,指针事件在 Internet Explorer 中适用于 svg 元素。
有一个很好的modernizr插件https://github.com/ausi/Feature-detection-technique-for-pointer-events/blob/master/modernizr-pointerevents.min.js来测试指针事件的存在
如果您使用指针事件只是在顶部添加某种纹理,则可以将 div 替换为 svg 元素
if( !Modernizr.pointerevents )
{
$('#texture').replaceWith('<svg id="texture"/>');
}
【讨论】: