1

我正在嘗試工作出我的modal中的錯誤。我正在使用Bootstrap,Angularng-Route。我最近注意到mobile(然後在桌面上),當我按下後退按鈕時,打開modal它會留下一個灰色疊加層,並且您不能click任何東西。因此,解決辦法我發現,部分地解決了這個問題是添加這個腳本:Bootstrap模式關閉問題

$(".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關閉時變回原來的狀態。

如果這個問題解決不了我至少想固定這個其他的問題,它是這樣的:當用戶通過點擊外或碰撞躲避urlReplace保持在browser地址這是很好的,但是當關閉modal用戶然後去click鏈接在我的nav bar它不會帶他們到鏈接它進入空白頁與urlReplace仍然在地址欄中,然後我可以click鏈接nav bar再次,它會去我發現奇怪的正確鏈接不知道如何解決這個問題。

任何想法或對此的見解都會很棒!

回答

0

您可以添加一個處理程序來監控模式關閉事件,然後推入一個新的歷史去除哈希:

$(".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

太謝謝你了!我認爲還有其他奇怪的事情正在發生,但它只是需要提供正確的網址來關閉模式和鏈接,我現在通常在我的導航工作中點擊! –