1

jQuery Mobile と ASP.Net MVC に基づいて Web サイトのスプラッシュ スクリーンを作成しようとしています。私の問題は、すべてのコントローラーがサイトのデスクトップ バージョンで使用されているため、ナビゲーション構造を実際に変更できないことです。サイトのモバイル側には個別の *.Mobile.cshtml ビューのみがあり、デスクトップ サイトと同じナビゲーション規則に従う必要があります。

私がやろうとしているのは、「ホーム」ページに次のような jQuery モバイル「ページ」を作成することです。

@if (ViewBag.ShowSplash!= null && ViewBag.ShowSplash == true) 
{
    <div data-role="page" data-theme="a" id="splash">
        <div id="splash_container">
            <img src="@Url.Content("~/Content/images/splash_logo.png")" />
        </div>
    </div>
    <script>
        // once we display splash screen, give it 4 seconds and load main container
        $(document).on('pageinit', '#splash', function () {
            var hideSplash = function () {
                $.mobile.changePage($("#container"));
            };
            setTimeout(hideSplash, 4000);
        });
    </script>
}

ViewBag.ShowSplash最初の読み込み時に Cookie が設定されているかどうかを確認して、コントローラーのどこに設定されているかを確認します。ViewBag.ShowSplash私が直面している問題は、Cookie が設定されていてコントローラーで null であっても、ホーム画面に戻るたびにスプラッシュ画面が表示され続けることです。JQM はすべてのページをキャッシュしていて、#splash無期限にスタックしていると思います。

JQM キャッシングを修正するために、次の#splashようにコンテナーを削除しています。

// Once main container is loaded, remove splash page-container so we can't come back to that thing again. Ever.
$(document).on('pageshow', '#container', function () {
    $('#splash').remove();
});

これはスプラッシュに対しては機能しますが、ナビゲーションなどの他のものを壊します。

JQM でスプラッシュ スクリーンを表示する簡単な方法があるのではないかと思います。そうでない場合、JQM に特定のページに戻らないように指示する方法はありますか

4

0 に答える 0