1

我试图做魔法并将我所有的平台 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>

但没有运气。

有没有一个干净的解决方案?谢谢,

4

4 回答 4

8

我更喜欢动态div

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

演示。

于 2013-05-01T03:06:09.637 回答
3

它只是工作。

检查jsfiddle 演示

注意:你不能alert('foo');直接在<head>'s<script>标签内调用,因为 div 元素在 dom 上还没有准备好。

于 2013-05-01T03:01:56.950 回答
0

您的代码看起来不错,但请确保将 jquery 和 jquery-ui 库添加到您的页面。

演示:Plunker

于 2013-05-01T04:39:23.193 回答
-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'
});
于 2014-08-26T06:06:15.687 回答