它说here Opera 12不支持指针事件。这是事实,它打破了我的网站。问题是他们确实支持css中的属性,即使他们似乎没有做正确的事情。在这种情况下,Modernizr形式的特征检测是无用的:
>>> Modernizr.testProp('pointerEvents')
true
jQuery.browser已被删除。我可以做些什么来检测我的javascript代码中的这个角落案例?或者获得Opera的版本?
答案 0 :(得分:1)
Opera提供了自己轻松获取版本的方法。如果你确定Opera
if (window.opera && parseInt(opera.version(), <== 12)) {
//do the opera thing
}
将检测小于或等于12的歌剧
答案 1 :(得分:0)
好的,这是我的错误解决方案,我希望有更好的解决方案......这是打字稿:
...
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;
}
答案 2 :(得分:-1)
如果您只想检测指针事件是否已启用,您可以根据W3C specification使用导航器属性:
window.navigator.pointerEnabled
这对于Opera 15及更高版本的回报是正确的,但是对于Opera 12及更低版本它是未定义的,这是你所理解的。