1

这里说Opera 12 不支持指针事件。这是真的,它破坏了我的网站。问题是他们确实支持 css 中的属性,即使他们似乎没有用它做正确的事情。Modernizr 形式的特征检测在这种情况下是没有用的:

>>> Modernizr.testProp('pointerEvents')
true

jQuery.browser已被删除。我该怎么做才能在我的 javascript 代码中检测到这种极端情况?或者获取 Opera 的版本?

4

3 回答 3

1

Opera 提供了自己获取版本的简便方法。如果你确定 Opera

if (window.opera && parseInt(opera.version(), <== 12)) {
 //do the opera thing
}

将检测歌剧,小于或等于12

于 2014-01-04T22:49:14.927 回答
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;
}
于 2014-01-04T18:59:04.707 回答
-1

如果您只想检测是否启用了指针事件,您可以根据W3C 规范使用 navigator 属性:

window.navigator.pointerEnabled

这对于 Opera 15 及更高版本返回 true,但对于 Opera 12 及更低版本给出 undefined,这是我所理解的你想要的。

于 2014-01-05T15:49:57.103 回答