1

初めて modernizr を使用していて、いくつかの問題に直面しています。

私が行った手順は次のとおりです。

HTML ヘッダーに Modernizr をロード HTML フッターに JQuery をロード

Jquery ドキュメントの準備ができたら、Modernizr を使用していくつかのブラウザー機能を確認しました。そのチェックが失敗すると、別のページにリダイレクトされます。

ほとんどの場合、ドキュメントの準備が整った状態で Modernizr を使用したチェックは正常に機能しますが、失敗して同じブラウザーからでも別のページにリダイレクトされることがあります。

Modernizr の前にドキュメントの準備ができているため、Modernizr が機能しなかったためだと思います。何かお手伝いできることはありますか?

$(function() { 
    //if browser can't provide certain features, it will redirect the browser to dumb phone page

    if(satisfiedWithBrowser()){
        // do other stuff
    }else
        window.location = 'redirect/';
});

function satisfiedWithBrowser(){    
    //console.log(Modernizr);

    if(!Modernizr.csstransforms || !Modernizr.backgroundsize || !Modernizr.cssanimations || !Modernizr.hashchange) // || !Modernizr.touch)
        return false;
    else
        return true;
}

ありがとう

4

1 に答える 1

0

はい、競合状態があるように聞こえます。試すには2つのオプションがあると思います。

  • モダナイザーをフッターの jQuery の横に移動して、直前にリクエストされるようにします。
  • $(document).ready()使用を待つのではなく$(window).load()

最初のオプションは、問題を分類する必要があります。その理由は、少なくともスクリプトタグの配置を常に理解している限りでは、スクリプトタグが本文にある場合、見つかった/解析されたときにリクエストされるのに対し、ヘッドのスクリプトタグはさまざまなタイミングでトリガーされるためです。ブラウザ(およびキャッシュの状態)によって異なります。基本的に、同じ方法を使用して両方のスクリプト タグをロードする必要があります(両方ともフッターで、または両方ともヘッドで)

2 番目のオプションは、DOM の準備が整うのを待つのではなく、すべてのリソースの待機を含む window.load まで待機するため、フォールバックとして機能するはずです。

于 2012-09-11T12:57:51.180 に答える