我有一個屏幕,其中有不同的功能。有一個Ajax調用的變化下拉框,並返回一個jsp頁面作爲響應。然後我將這個迴應放在我的下拉框下面的div中。 現在我想要的是,直到這個jsp沒有被div元素填充,屏幕被一個警告框或其他對話框阻止。 我怎樣才能做到這一點?JavaScript:如何在等待Ajax響應時屏蔽整個屏幕
回答
如果你真的想阻止用戶界面,只是使AJAX請求同步。
這將阻止整個頁面,用戶將不知道背景中正在發生什麼。假設你的ajax調用需要5秒鐘。用戶應該有一些信息,在後臺發生了一些事情。通過同步ajax請求,您的頁面將被凍結。 – 2012-05-12 00:39:08
完全同意亞歷克斯。這是一個非常危險的解決方案 – 2013-06-26 15:10:10
非常感謝你 – Charmie 2014-05-14 06:32:04
你可以使用here的blockui jquery插件。在您的ajax回調中調用ajax調用和unblockUI之前調用blockUI。
我會使用Jquery和JQuery UI。 Jquery UI提供了一個模式對話框,您可以在其中放置一條加載消息,以防止用戶在屏幕上的其他位置點擊。
您可以使用div以及z-index,不透明度和光標樣式。雖然我不知道你的應用程序,但阻止整個頁面聽起來不像是一個很棒的用戶體驗。也許你可以把div放在頁面的受影響區域
只需使用一個布爾標誌,直到被設置(在接收內容時),你將鎖定功能。一旦設置了此標誌,請繼續。假設你有控制這些功能。
@linusunis喂,
如果要防止用戶點擊任何東西,我建議覆蓋一個div元素&也許使它半透明。下面是用於div & jQuery代碼的CSS,用於動畫顯示屏幕疊加層和刪除屏幕疊加層。在您收到數據後,撥打電話&「unblock_screen」後,請撥打「block_screen」&將新的div放在頁面上。這只是我的頭頂,所以你可能需要仔細檢查錯誤,但它看起來不錯。
您需要在頁面上包含jQuery以使其工作。在這裏下載:http://code.jquery.com/jquery-1.7.1.min.js
<style type="text/css">
.blockDiv {
position: absolute:
top: 0px;
left: 0px;
background-color: #FFF;
width: 0px;
height: 0px;
z-index: 10;
}
</style>
<script type="text/javascript" language="javascript">
function block_screen() {
$('<div id="screenBlock"></div>').appendTo('body');
$('#screenBlock').css({ opacity: 0, width: $(document).width(), height: $(document).height() });
$('#screenBlock').addClass('blockDiv');
$('#screenBlock').animate({opacity: 0.7}, 200);
}
function unblock_screen() {
$('#screenBlock').animate({opacity: 0}, 200, function() {
$('#screenBlock').remove();
});
}
</script>
- 1. 等待屏幕,等待響應
- 2. 在等待服務器響應時設置加載屏幕
- 3. 屏蔽xlarge屏幕android
- 4. 響應DIV填充整個屏幕
- 5. 如何等待AJAX響應
- 6. 黑莓 - 等待屏幕
- 7. BlackBerry請等待屏幕超時
- 8. Android應用程序在等待HTTP響應時顯示黑屏
- 9. 用Smartface屏蔽整個UI
- 10. 如何創建覆蓋div來遮蔽整個屏幕?
- 11. C#如何在屏幕上顯示等待gif 5秒當我點擊屏幕
- 12. 請等待在asp.net中的屏幕
- 13. 在WPF中顯示「等待」屏幕
- 14. 如何屏蔽
- 15. 地圖屏蔽了屏幕元素?
- 16. 如何讓這個Javascript代碼響應任何屏幕?
- 17. 以整個屏幕的屏幕截圖
- 18. 如何讓硒等待ajax響應?
- 19. 將視圖修改爲等待屏幕
- 20. iPhone等待屏幕的框架
- 21. 爲WPF窗口加載等待屏幕
- 22. 螺紋加載(等待)屏幕
- 23. 初始屏幕等待幾秒鐘
- 24. 等待屏幕窗口結束
- 25. 如何屏蔽「。」炭?
- 26. 圖片應響應,並應充滿整個屏幕
- 27. iOS屏幕的響應如何?
- 28. JQuery的等待Ajax響應
- 29. $ .Ajax沒有等待響應
- 30. Bacon.js並等待AJAX響應
你得到了很多jQuery的答案,但我沒有看到你使用jQuery本(或以前)的問題的跡象。我錯了嗎? – 2012-02-05 20:07:02