jquery 1.xと2.xをブラウザで分岐

毎回ながら忘れない為のメモです。
興味ない人はどーでも良い内容ですが、jquery 1.xと2.xをブラウザで分岐させるメモです。

広告

wordpress上での書き方

ホントメモなので、いきなりコード

function deregister_files() {
    if (!is_admin()) {
        wp_deregister_script( 'jquery' );
        wp_register_script( 'jquery', '//ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js', array(), null, false);
        wp_enqueue_script( 'jquery' );
        wp_enqueue_script( 'jquery-1-11', '//ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js', array(), null, false);
        wp_script_add_data( 'jquery-1-11', 'conditional', 'lt IE 9' );
        wp_enqueue_script( 'jquery-mig', '//cdnjs.cloudflare.com/ajax/libs/jquery-migrate/1.2.1/jquery-migrate.min.js', array(), null, false);
    }
}
add_action( 'wp_enqueue_scripts', 'deregister_files');

add_filter( 'script_loader_tag', function( $tag, $handle ) {
    if ( $handle === 'jquery-2x' ) {
        $tag = "<!--[if gt IE 8]><!-->$tag<![endif]-->";
    }
    return $tag;
}, 10, 2 );

まずはwp_enqueue_scriptsに引っ掛けてCDNに変更。nullはバージョンの数字を消してます。
その後、ブラウザの分岐。

モダンなブラウザなら2.xのほうが早いって話。
つーか早くIE8以前が全滅してくれればこんな必要無いのに、意外とまだシェアが残ってますよね。

きっと、ウチのお客さんとかもレガシーなブラウザの人結構いると思う。僕の周り、みんなアナログだもんなー。

ちなみにwelcartで使うなら、!is_admin()以外にカートページも除外したほうが良いと思う。

ではでは。


少し変更しました。この書き方ならwelcartのカートページは除外しなくても大丈夫だと思います。

広告

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です