2013-05-01 106 views
1

我試圖做的魔力,把我所有的平臺的JavaScript警告jQuery的對話,我也跟着下面的腳本重寫JavaScript警告jQuery的對話框

<div id="overrideAlert"></div> 

<script> 
window.alert = function(message) { 
    $('#overrideAlert').text(message).dialog({ 
     modal:true, 
     title:'Message', 
     buttons: { 
      'OK':function(){ 
       $(this).dialog('close'); 
      } 
     } 
    }); 
}; 
</script> 

,但沒有運氣。

這是乾淨的解決方案嗎?謝謝,

+0

你在控制檯中的任何消息?你已經正確地將jQuery和jQuery UI加載到頁面中了,是嗎? – Marc 2013-05-01 02:56:15

+0

你面臨的問題是什麼 – 2013-05-01 02:56:39

+2

對我來說看起來很好http://plnkr.co/edit/mzSKFsjvkSod1oqErdFF?p=preview – 2013-05-01 02:58:19

回答

8

我寧願一個動態的,而不是div

$('<div />').text(message).dialog({ 
    modal:true, 
    title:'Message', 
    buttons: { 
     'OK':function(){ 
      $(this).dialog('close'); 
     } 
    }, 
    close:function(){ $(this).dialog('destroy').remove(); } 
}); 

DEMO.

+0

感謝的人,說我有一個鏈接,點擊時,一個警告彈出,這也幫助該場景呢? – ComeRun 2013-05-01 03:59:43

3

它只是工作。

檢查jsfiddle demo

注意:您不能直接在<head><script>標籤內調用alert('foo');標籤,因爲div元素在dom上沒有準備好。

+0

感謝,並解決方案涵蓋上彈出點擊警報?說你點擊一個鏈接,並彈出一個確認彈出窗口。我想要得到jQuery的對話框時,點擊這些類型的鏈接 – ComeRun 2013-05-01 04:01:09

0

您的代碼看起來不錯,但要確保你添加jQuery和jQuery的UI庫到您的網頁。

演示:Plunker

-1

如果我們提交頁面會自動警報之前。 一些保存成功的消息,但沒有要求「好」。 我已經完成了alert.any建議的重寫。 window.alert =功能(消息,回退){

$(document.createElement('div')).attr({title: 'Alert', 'class': 'alert'}).html(message).dialog({ 
    buttons: {OK: function(){$(this).dialog('close'); callback()}}, 
    autoOpen: true, 
    close:function(){$(this).remove();}, 
    draggable: true, 
    modal: false, 
    resizable: false, 
    height:'auto', 
    width: 'auto' 
});