2013-05-01 7 views
1

Я пытался сделать магию и превратить все мои платформы Java-оповещений в диалоговом окне JQuery, я последовал за следующие сценарииперекрывая яваскрипта ALERT в диалоговом окне 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

+0

В чем проблема, с которой вы сталкиваетесь –

+2

выглядит хорошо для меня http://plnkr.co/edit/mzSKFsjvkSod1oqErdFF?p=preview –

ответ

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

3

Это просто работает.

Проверить на jsfiddle demo.

Примечание: вы не можете позвонить alert('foo'); непосредственно в теги <head><script>, потому что элемент div не готов на dom.

+0

Спасибо, ваше решение покрывает предупреждения, которые появляются при нажатии? скажем, нажмите на ссылку и появится всплывающее подтверждение. Я хочу получить диалоговое окно jquery, когда нажимаю на эти виды ссылок. – ComeRun

0

Ваш код выглядит нормально, но убедитесь, что вы добавляете Jquery и Jquery-интерфейс библиотеки на страницу.

Демо: Plunker

-1

Если отправляете страницу, прежде чем тревога происходит автоматически. некоторые сохраненные сообщения успешно там, но не просят «хорошо». Я сделал переопределение предупреждения. Любое предложение. 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' 
}); 
Смежные вопросы