6

モバイル サイト (MVC スタイルの ASP.NET) があり、特にフルスクリーンの HTML スライドショーが表示されます。

これを表示するには、次のように mobileHTMLMovie ビューでコードを実行します。

$( function() {
    $(document).bind('pageinit', function() {
    $("header").hide();
    $(".subHeader").hide();
    $(".subHeaderAccent").hide();
    $("footer").hide();
    $(".ui-content").css("width", "100%").css("height", "100%").css("margin","0").css("background-color", "#000");
    });
});

私たちが目にしている問題は、ユーザーが「戻る」ボタンを押すと (このコードは HTML 移動ボタンを含むすべてのラッパー要素を無効にするため、ハードウェア コントロールに限定されます)、要素が非表示のままになることです。

ランディング ページで「反転」コード (非表示ではなく表示、「.ui-content」からスタイル属性を削除) を実行する方法を見つけることができませんでした。彼らが到着したページは、到着時に document.ready を実行せず、映画ページは「onunload」または「onbeforeunload」を実行せず、オンラインで見つけた他の提案 (.live('click') で'[data-rel=back]' 要素) も機能していません。

誰か提案はありますか?

4

1 に答える 1

1

History オブジェクトを使用してpopstateイベントにバインドしてみてください。基本的に、スライドショーが表示されているときに新しい状態を押し込み、ユーザーが押し戻すと、ポップがトリガーされる可能性があります。

例:

$(function() {
    $(document).bind('pageinit', function() {
        $("header").hide();
        $(".subHeader").hide();
        $(".subHeaderAccent").hide();
        $("footer").hide();
        $(".ui-content").css("width", "100%").css("height", "100%").css("margin","0").css("background-color", "#000");

        window.history.replaceState("slideshow", "Slideshow", "slideshow");
    });

    window.addEventListener('onpopstate', function(event) {
        if (event.state === "slideshow") {
            //Close the slideshow
        }
    }
});

ページのフローが何であるかはわかりませんが、スライドショーの起動方法に応じてreplaceStateまたはを使用しますpushState

資力

于 2012-12-29T17:28:51.827 に答える