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 に答える