2009-12-18 75 views
1

我的頁面上有一個javascript警報彈出窗口。我遇到的問題是,不是等待用戶實際點擊確定按鈕,而是簡單地進行重定向,它應該在單擊確定按鈕後執行。任何人都可以請幫我調整我的代碼,以便讓它工作,因爲它應該討好?具有確認的Javascript警報

function f() 
{ 

    ar ape =radalert('<div align=""center"" style=""font-weight: bold;""> OPEN BOX HERE</div>', 123, 200); 
if(ape)window.location.href = "/Default.aspx"; 
Sys.Application.remove_load(f); 
} 

Sys.Application.add_load(f); 

回答

4

可以使用add_close方法附加一個回調函數,知道什麼時候該警報被關閉:

var win = radalert('foo'); 
win.add_close(function() { 
    alert('bar'); // This will be executed when the radalert is closed. 
}); 

更多信息:

+0

對radalert的返回值的很好的研究。 –

+0

+1大時間,在我給它的時候,我無法找到被抨擊的參考文檔。 –

2

你不使用JavaScript alert(在內置功能的意義上),它看起來像你正在使用一種名爲radalert東西(從Telerik的)。這意味着它不能的行爲就像是一個JavaScript alert,這會導致腳本處理在屏幕上處於暫停狀態。

我對Telerik一無所知,但這些警報替代品中的大多數提供了一個可以傳遞的回調,當清除警報時會觸發該回調。這就是你想要你的window.location.href = ...代碼的地方。

通常這看起來是這樣的:

function blah() { 

    niftyAlertThingy("Here's my message", { 
     onOK: function() { 
      window.location.href = "/Default.aspx"; 
      // etc. 
     } 
    }); 
} 

blah函數返回立即,與警報仍然在頁面上;那麼警報代碼會在用戶單擊確定時調用您的回調。

我敢肯定,Telerik的radalert有類似的東西...

+0

Telerik確實有類似的東西,但它是由MS AJAX事件訂閱模型驅動的,沒有回調。內容管理系統在他的回答中涵蓋了它http://stackoverflow.com/questions/1928804/javascript-alert-with-confirmation/1928896#1928896 –

+0

CMS的大+1爲查找爆炸的文檔。 @Crescent Fresh:雖然這是一個回調! ;-) –

+0

@ T.J .:你知道我的意思;) –

1

我想你的代碼將需要更多的解釋,可能你的背後也代碼(只是你如何處理相關的代碼「OK」點擊) 。我對telerik的使用經驗並不好。我建議你嘗試jQuery UI。它讓您更好地控制如何處理事件和地點。

例(從here

$(function(){ 

    $("#dialog").dialog({ 
    autoOpen: false, 
    modal:true, 
    buttons : { 
     "Yes" : function() {    
      $(this).dialog("close"); 
      eval($("#<%= hdnBtnPostback.ClientID %>").val()); 
     }, 
     "No" : function() { 
      $(this).dialog("close"); 
     }, 
     "Maybe": function() { 
      $(this).dialog("close"); 
      //what should we do when "Maybe" is clicked? 
     }   
    } 
    }); 
}); 
相關問題