刷新(F5)在jQuery Dialog中不起作用

vik*_*sde 7 jquery jquery-ui jquery-dialog

我正在使用jquery对话框小部件来显示模式框.但是当按下F5时,模态打开时不会发生刷新.任何的想法?

有趣的更新:

试试这个演示:http://jqueryui.com/demos/dialog/#modal-message 现在当焦点在"ok"按钮上,然后刷新(F5)工作,但是当按钮没有焦点时,然后它没有.

更新2

实际上我们可以在对话框中添加任何类型的控件,将高度和宽度设置为0 css并设置焦点以使刷新工作.这不是最好的解决方案.我仍在尝试让按键工作.

更新3

以下似乎现在有效:

$(document).keydown(function(e)
{
    if (e.which == 116) // key code of the F5 button
    {
        document.location.reload();
     }
}); 
Run Code Online (Sandbox Code Playgroud)

Dav*_*gue 6

这似乎是一个普遍的问题,我没有看到一个令人满意的答案.Stack Overflow上有一些类似的问题,我看到的最好的答案是捕获键并自己触发动作(这是为了触发按钮,所以f5刷新可能更难)我自己看过我正在研究的一个项目.

我怀疑将模态设置为false可能会有所帮助,但我还没有尝试过.

编辑:

我在ui.dialog.js的第539行找到了这个:

events: $.map('focus,mousedown,mouseup,keydown,keypress,click'.split(','),
Run Code Online (Sandbox Code Playgroud)

从那里删除keydown和keypress似乎允许正常的浏览器键工作.现在我看起来像这样:

events: $.map('focus,mousedown,mouseup,click'.split(','),
Run Code Online (Sandbox Code Playgroud)

我不知道通过这样做我会删除什么功能.似乎使用的唯一事件是在549行:

$(document).bind($.ui.dialog.overlay.events, function(event) {
    var dialogZ = $(event.target).parents('.ui-dialog').css('zIndex') || 0;
    return (dialogZ > $.ui.dialog.overlay.maxZ);
});
Run Code Online (Sandbox Code Playgroud)

如果可能的话,在官方版本中修复它会很好.