2
我的目標是顯示一個非模態的jquery-ui對話框,它將顯示一個請等待消息以及加載動畫。該對話框將顯示在用戶來自的頁面上,而不是繼續。我基本上已經在下面的代碼中工作了。但是,Safari不會顯示請稍等的對話框。 Firefox和Chrome顯示對話框並按照href。 Safari只是遵循href,但不會顯示對話框。請等待對話框 - safari特定問題的jquery實現
如果我嘗試一個preventDefault();或返回虛假;在click事件處理程序中,safari(和所有瀏覽器)將顯示請稍等的對話框,但當然不會遵循href。所以我希望進入點擊的href的默認行爲,就在去href時,我想要顯示對話框。
我甚至試圖做一個點擊處理程序,並在裏面做一個preventDefault(),然後打開對話框,然後設置window.location或location.href,但Safari仍然會跟着href而不顯示對話框。
有沒有人有任何其他的想法?
的javascript:
$(document).ready(function() {
// Register the pleaseWaitDialog element as a jquery-ui dialog widget with certain options set
$("#pleaseWaitDialog").dialog({
autoOpen: false,
buttons: {},
open: function(event, ui) { $(".ui-dialog-title, .ui-dialog-titlebar-close").hide(); }, // hide the dialog title bar
resizable: false,
show: {effect: 'fade', duration: 500},
height: 120,
width: 300
});
// When a link to add a meeting is clicked, then display the please wait dialog
$("a.addMeetingLink").click(function(e) {
// But wait 5 seceonds before displaying the please wait dialog
setTimeout(function() {
$("#pleaseWaitDialog").dialog("open");
}, 5000);
});
});
HTML:
<a href="/ripplemobile/trip/addmeeting/81/1/305/308" class="addMeetingLink">Add Meeting</a>
<div id="pleaseWaitDialog">
<div>
<p>Please wait</p>
<img src="/ripplemobile/images/ajax-loader.gif" />
</div>
</div>
我試過這個。這將使得請等待對話框顯示(即使在Safari中),但它將不再繼續到錨標籤的href位置。那麼我該如何跟蹤錨標記並顯示對話框呢? – Sheparzo
你的意思是顯示對話框,然後按照href延遲? 當您按照href時,對話框將關閉,當您移動到href目的地 如果您希望顯示對話框,然後繼續到目的地,您可以添加另一個超時打開對話框打開去調用 –
沒有做在延遲之後不要遵循href。我希望遵循href,並且存在固有的延遲,因爲它需要服務器處理請求並提供響應。在等待服務器響應期間,我希望瀏覽器等待5秒鐘,如果服務器仍未響應,請顯示請稍候對話框。該對話框隨後將顯示,直到服務器最終響應,在這種情況下,對話框消失並顯示新頁面。如果服務器在5秒之前發生響應,那麼用戶甚至不會看到請稍等的對話框。 – Sheparzo