将警报,提示和确认转换为UI对话框

时间:2015-04-23 15:09:13

标签: javascript jquery alert prompt confirm

我有一个运行警报的游戏,确认并提示运行界面。我意识到这不是最好的方法,因为我不知道如何使用jQuery而且我没有时间去编辑整个事情,我可以直接转换它。

我发现下面有一个脚本可以为我转换警报,但是如何对提示和确认做同样的事情呢?

jQuery的:

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

HTML:

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

2 个答案:

答案 0 :(得分:0)

为了确认它应该几乎相同。试试这段代码:

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

答案 1 :(得分:0)

我前段时间尝试过,只是上传为GitHub gist

但是BE AWARE:即使你的alert()实现也不完全等同于本机window.alert()实现,因为你不能停止javascript内部循环(参见我的代码中的注释)。

这可能导致使用alert()替换的严重问题,并使confirm()和prompt()实现(我认为完全)不可能。

编辑: Konstantin Dinev解决方案无效,因为他的confirm()函数会立即退出(返回undefined),就像你的alert()实现一样(对不起,我无法评论他的帖子)直接地)。

......我刚才考虑过(但尚未实施)更好的解决方案不是重新定义alert(),confirm()和prompt()并将其替换为其他实现,< STRONG>总部设在回调(什么暗示你应该修改你的代码位),可与jQuery实现它和可选的故障恢复(如果你想)到窗口对话框如果jQuery是没有可用的基于执行。