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 に特定のページに戻らないように指示する方法はありますか