这里说Opera 12 不支持指针事件。这是真的,它破坏了我的网站。问题是他们确实支持 css 中的属性,即使他们似乎没有用它做正确的事情。Modernizr 形式的特征检测在这种情况下是没有用的:
>>> Modernizr.testProp('pointerEvents')
true
jQuery.browser已被删除。我该怎么做才能在我的 javascript 代码中检测到这种极端情况?或者获取 Opera 的版本?
这里说Opera 12 不支持指针事件。这是真的,它破坏了我的网站。问题是他们确实支持 css 中的属性,即使他们似乎没有用它做正确的事情。Modernizr 形式的特征检测在这种情况下是没有用的:
>>> Modernizr.testProp('pointerEvents')
true
jQuery.browser已被删除。我该怎么做才能在我的 javascript 代码中检测到这种极端情况?或者获取 Opera 的版本?
Opera 提供了自己获取版本的简便方法。如果你确定 Opera
if (window.opera && parseInt(opera.version(), <== 12)) {
//do the opera thing
}
将检测歌剧,小于或等于12
好的,这是我的错误解决方案,我希望有更好的解决方案......这是在打字稿中:
...
public isBadOpera(): boolean
{
var isOpera = Object.prototype.toString.call(window['opera']) == '[object Opera]';
if ( isOpera )
{
var opera: OperaVersion = window['opera'];
var version_string = opera.version();
var version_re = /(\d+).(\d+)/;
var mo = version_re.exec(version_string);
if ( mo )
{
var major_version = Number(mo[1]);
if ( major_version <= 12)
{
return true;
}
}
}
return false;
}
...
interface Opera {
version():string;
}
如果您只想检测是否启用了指针事件,您可以根据W3C 规范使用 navigator 属性:
window.navigator.pointerEnabled
这对于 Opera 15 及更高版本返回 true,但对于 Opera 12 及更低版本给出 undefined,这是我所理解的你想要的。