2012-12-26 10 views
6

モバイルサイト(MVCスタイルのASP.NET)は、とりわけフルスクリーンHTMLスライドショーを表示します。これを表示するにはモバイルバックプレス後にjavascriptを実行

、我々はそのような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"); 
    }); 
}); 

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

「リバーサル」コード(hideの代わりに表示、スタイル属性を「.ui-content」から削除する)を実行する方法を見つけることができませんでした。彼らが着陸するページは、到着時にdocument.readyを実行せず、ムービーページは 'onunload'または 'onbeforeunload'を実行せず、オンラインで見つかった他の提案(.live( 'click')) '[data-rel = back]'要素)も機能しませんでした。

誰にも提案はありますか?

+0

いいえはSOL – mplungjan

+0

@mplungjan:とたん - 私は常にそれらが表示されている場合は常にチェックし、そうでない場合に戻ってそれらを切り替えるように設定し、時限イベントを持つことはできません。それはちょうどhackishと醜いです - 私はむしろ確実に彼らが着陸するときにそれを発射させるでしょう。 – Jeff

+0

あなたはページの最後にショーを追加できますか? – mplungjan

答えて

1

履歴オブジェクトを使用して、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を使用したいのいずれか

関連する問題