1

私はmodalのバグを解決しようとしています。私はBootstrap,Angularng-Routeを使用しています。私は最近mobile(そしてデスクトップ上)に気づきました。modalを開いてバックボタンを押すと、グレーのオーバーレイが残っていて、何もclickできません。だから私は、部分的に問題を修正することを見つけ解決策は、このスクリプトを追加することです:ブートストラップモーダル閉じる問題

$(".modal").on("shown.bs.modal", function() { // any time a modal is shown 
     var urlReplace = "#/" + $(this).attr('id'); // make the hash the id of the modal shown 
     history.pushState(null, null, urlReplace); // push state that hash into the url 
    }); 

    // If a pushstate has previously happened and the back button is clicked, hide any modals. 
    $(window).on('popstate', function() { 
     $(".modal").modal('hide'); 
    }); 

これは素晴らしい作品、ユーザpressesback buttonは、しかし、ユーザーがモーダルの外側をクリックするか、urlReplaceを逃れる押すことでmodalを閉じたときbrowserアドレスバーに残ります。 modalが閉じられたときに前回と同じように変更したいと思っています。

その問題は、私は、少なくともこのあるこの他の問題が修正されたい解決できない場合は、次のユーザーがmodalを閉じると外をクリックするか、押すことで脱出urlReplaceは大丈夫ですbrowserアドレスに残っているが、ときユーザーはclickに私のnav barのリンクを送りますが、アドレスバーにまだurlReplaceという空白のページが表示されていれば、clickのリンクをもう一度nav barに入れることができますこの問題を解決する方法が不明確であることがわかった適切なリンク。

これについてのアイデアや洞察力はすごいでしょう!

答えて

0

あなたは次に除去ハッシュで新しい歴史をプッシュし、モーダルcloseイベントを監視するためのハンドラを追加することができます。

$(".modal").on("hidden.bs.modal", function() { // any time a modal is hidden 
    var urlReplace = window.location.toString().split('#', 1)[0] 
    history.pushState(null, null, urlReplace); // push url without the hash as new history item 
}); 
+1

はありがとうございました!私は奇妙な何かが起こっていると思ったが、それはちょうどモーダルを閉じて適切なURLを与える必要があったと私のナビゲーションでクリックしてリンク現在正常に! –

関連する問題