2014-11-04 56 views
0

我想把這個對話框裏面的頁面刷新。我的意思是。當我刷新頁面時,這必須是輸出。如何把對話框裏面的頁面刷新?

<script> 
    $(function() { 
     $("#dialog").dialog({ 
      modal: true, 
      resizable: false, 
      buttons: { 
       "I want to Continue the Exam": function() { 
        $(this).dialog("close"); 
       }, 
       "I Refresh": function() { 
        $(this).dialog("close"); 
       } 
      } 
     }); 
    }); 
</script> 
+0

你的意思是你想顯示這個dia當用戶在瀏覽器中按下刷新按鈕(或F5)時記錄日誌? – Dmitry 2014-11-04 07:56:57

+0

你的右派夥計! – 2014-11-04 08:00:31

+0

我不認爲這是可能的。你唯一的選擇是使用['onbeforeunload'](https://developer.mozilla.org/en-US/docs/WindowEventHandlers.onbeforeunload) – Dmitry 2014-11-04 08:21:23

回答

0

據我知道,當你「刷新」頁面,那麼所有的JS對象被銷燬(那些編寫腳本)。換句話說腳本重新加載。所以當頁面處於轉換狀態時,你無法堅持你的腳本。因此,如果您只是想重新加載應用程序的特定部分,然後使用$ before()方法之類的$ .ajax()方法來顯示任何內容(警報或最佳加載微調器/ div)在數據請求或'頁面刷新'期間需要。然後你可以隱藏它們完成()。使用路由器的類型II 像Angular這樣的JS框架爲您提供了重新加載應用程序的特定路線而不需要重新加載/刷新整個應用程序的選項 - $ route.reload()。您可以根據控制器中的操作顯示/隱藏某些div /指令。

所以你必須使用某種形式的異步腳本來處理這個「PROMPT while REFRESH」的情況。

使用$。阿賈克斯()來模擬(僞代碼) -

$.ajax({ 
    url: "_URL_to_get_or_post_data__", 
    beforeSend: function(xhr) { 
    $popup.show(); 
    } 
}) 
    .done(function(data) { 
     $popup.hide(); 
    } 
}); 
+0

謝謝你的答案先生。 。我沒有得到你所說的。但所有人都知道是不可能的。 – 2014-11-04 08:32:11

+0

是的,在1行中是不可能的。但是你可以使用Jquery Ajax來模擬你是否有這種需求。 – Subhranshu 2014-11-04 09:07:03

+0

你的意思是。如果我使用jQuery和Ajax我可以做我想要的東西? 可以在這裏評論代碼先生.. – 2014-11-04 09:19:51

0

瀏覽器有安全功能,不會讓一個頁面防止用戶離開頁面。通過離開頁面意味着關閉標籤頁/瀏覽器,導航到不同的頁面或刷新。停止用戶的唯一方法是將函數分配給onbeforeunload。像這樣:

onbeforeunload = function() { return "You have unsaved data. Are you sure you want to exit?"; } 

此消息是同步的,它將停止頁面上運行的所有javascript。如果用戶按下ok,瀏覽器將離開頁面(或刷新),否則它將保留在頁面上。

編輯

用法:當用戶已經改變了一些東西,有未保存的數據 - 你分配一個功能onbeforeunload

onbeforeunload = function() { return "some message"; } 

的數據被保存後設置onbeforeunload爲null:

onbeforeunload = null; 
+0

我該如何應用此代碼先生? 當我在我的netbeans上使用它時,它將它標記爲已讀。 – 2014-11-04 09:18:30