2012-02-15 21 views
0

私は、一度それがページに読み込まれると自動再生するFlashビデオを持つプロジェクトに取り組んでいます。私のクライアントは、誰かが最初にそのページにアクセスしたときにのみ自動再生することを望みます。その結果、(同じセッション内で)訪問がビデオをロードしますが、一時停止したままにしておきます。クッキーの理解(jquery cookieプラグインを使用)

Flashビデオには、ビデオを一時停止または再生するために呼び出すことができるJS機能があります。だから、私が考えたのは、ユーザーがページを訪問し、結果的に訪れたときにコールバックをトリガーさせた後にクッキーを設定することでした。再生機能のみがこのページへのリターン時にトリガーされるように

//wait until everything has loaded 
$(window).load(function(){ 

    //set a cookie 
    $.cookie('welcome_cookie', 'welcome'); 

    //check for the cookie and call the pause function 
    if($.cookie('welcome_cookie')){ 
     controlPlayback('pause'); 
    } 
}); 

これは動作しますが、それは非常に最初の時間のビデオを一時停止...私はそれはどのように作るのですか?

+0

ちょうど逆順です。 最初にテストし、Cookieを追加します。 – deantoni

答えて

4

最初のチェックの後にクッキーを設定するように指示を切り替えてください。

//wait until everything has loaded 
$(window).load(function(){ 

    //check for the cookie and call the pause function 
    if($.cookie('welcome_cookie')){ 
     controlPlayback('pause'); 
    } 

    //set a cookie 
    $.cookie('welcome_cookie', 'welcome'); 
}); 

おそらくit'sが設定されていない場合だけでクッキーを設定していないなぜすべてのページのロードにクッキーを設定する必要がドント。あなたはこのためにクッキーを必要としないのはなぜ

//check for the cookie and call the pause function 
if($.cookie('welcome_cookie')){ 
    //pause video player 
    controlPlayback('pause'); 
} else { 
    //set a cookie 
    $.cookie('welcome_cookie', 'welcome'); 
} 
+0

私が$(window).loadを持っている理由は、再生機能を呼び出す前にFlash Playerがロードされていることを知るためです。それ以外の場合は、定義されていないメソッドエラーが発生します。 –

+0

トリックをした@Stefanに感謝します –

2

は、クッキーは、にそれぞれすべての要求と応答でサーバから送信されます。したがって、サーバーで実際には不要なデータを前後に送信しています。本当に必要なのは、ローカルストレージです。

$(window).load(function(){ 

    //If not first visit then pause 
    if(localStorage['not_first_visit']){ 
     controlPlayback('pause'); 
    } 

    //Set 
    localStorage('not_first_visit')=true; 
}); 
+0

localStorageのブラウザサポートは何ですか?私がIE7 +で動作する限り、私はこのアプローチを試してみたいと思います。 –

+0

IE7 +は間違いなくlocalStorageをサポートしています。 –

+0

興味深い...私はこれを試してみるつもりです... –

関連する問題