jQuery MiniUI

 找回密码
 立即注册
查看: 3441|回复: 9
打印 上一主题 下一主题

想给窗口关闭加快捷键,并且加是否关闭的提示,如何实现 [复制链接]

Rank: 3Rank: 3

跳转到指定楼层
楼主
发表于 2014-2-27 10:50:21 |只看该作者 |倒序浏览
想给窗口关闭加快捷键,并且在准备关闭的时候加确认关闭的提示,如何加此快捷键?如何加提示?

Rank: 8Rank: 8

沙发
发表于 2014-2-27 10:58:12 |只看该作者
监听页面整体的按键事件

通过keycode来区分按键,

mini.confirm()来做确认提示弹出
参考:http://www.miniui.com/demo/#src=messagebox.html

Rank: 3Rank: 3

板凳
发表于 2014-2-27 11:03:14 |只看该作者
factory 发表于 2014-2-27 10:58
监听页面整体的按键事件

通过keycode来区分按键,

如何获取窗口关闭事件呢? 提示:是否确认关闭? 如果选择否  就不关闭!
在mini.open 的ondestroy 加取消 是没有效果的

Rank: 8Rank: 8

地板
发表于 2014-2-27 11:14:51 |只看该作者
muzizhuben 发表于 2014-2-27 11:03
如何获取窗口关闭事件呢? 提示:是否确认关闭? 如果选择否  就不关闭!
在mini.open 的ondestroy 加取消 ...

用mini.confirm()做确认弹出框

在回调里面 执行window.CloseOwnerWindow();

Rank: 3Rank: 3

5#
发表于 2014-2-27 11:27:46 |只看该作者
factory 发表于 2014-2-27 11:14
用mini.confirm()做确认弹出框

在回调里面 执行window.CloseOwnerWindow();

怎么在点击关闭之前调用这个方法?  
function CloseWindow(action) {
                if (action == "close") {
                        mini.confirm("您有内容未发送,确认离开?", "提示", function(res) {
                                if (res == 'ok') {
                                        if (window.CloseOwnerWindow)
                                                return window.CloseOwnerWindow(action);
                                        else
                                                window.close();
                                }
                                else{
                                        return;
                                }
                        });
                }
        }
像这样在open方法里写不行啊!!触发ondestroy 的时候 页面已经关闭过了
ondestroy : function(action) {
                if (action == "close") {
                                mini.confirm("您有内容未发送,确认离开?", "提示", function(res) {
                                        if (res == 'ok') {
                                                if (window.CloseOwnerWindow)
                                                        return window.CloseOwnerWindow(action);
                                                else
                                                        window.close();
                                        }
                                        else{
                                                return;
                                        }
                                });
                        }
        }

Rank: 8Rank: 8

6#
发表于 2014-2-27 12:02:15 |只看该作者
muzizhuben 发表于 2014-2-27 11:27
怎么在点击关闭之前调用这个方法?  
function CloseWindow(action) {
                if (action == "close") {

你是自己写的按钮,还是要按右上角的X关闭mini.open?

前者的话,写个关闭方法,
在方法里面执行mini.confirm()
在confirm的回调里面判断,是否执行window.CloseOwnerWindow();来决定是否关闭

如果是点X, 在mini.open的ondestory里面,return false

Rank: 8Rank: 8

7#
发表于 2014-2-27 12:12:03 |只看该作者
muzizhuben 发表于 2014-2-27 11:27
怎么在点击关闭之前调用这个方法?  
function CloseWindow(action) {
                if (action == "close") {

或者你用window来做,然后window可以监听onbeforecolick事件

在事件里面判断 e.name == "close"

然后弹出mini.comfirm()
通过回调里面不同的按钮,执行 e.cancel = true;阻止掉关闭

Rank: 3Rank: 3

8#
发表于 2014-2-27 13:43:40 |只看该作者
factory 发表于 2014-2-27 12:12
或者你用window来做,然后window可以监听onbeforecolick事件

在事件里面判断 e.name == "close"

有mini.open的  也有普通的页面  要求就是 只要点X  就提示是否确认关闭 如果选择否,就不关闭 否则执行关闭。 大神 能不能写个例子呢 万分感谢

Rank: 8Rank: 8

9#
发表于 2014-2-27 14:18:05 |只看该作者
muzizhuben 发表于 2014-2-27 13:43
有mini.open的  也有普通的页面  要求就是 只要点X  就提示是否确认关闭 如果选择否,就不关闭 否则执行 ...

那你不能用miniui的确认窗口,得用JS的confirm

你在子页面中
  1. function onCancel(e) {
  2.             CloseWindow("cancel");
  3.         }

  4. function CloseWindow(action) {
  5.             if (action == "close" || action == "cancel" && form.isChanged()) {
  6.                 if (!confirm("数据被修改了,是否先保存?")) {
  7.                     action = "no";
  8.                 }
  9.             }
  10.             if (window.CloseOwnerWindow) return window.CloseOwnerWindow(action);
  11.             else window.close();
  12.         }
复制代码
在mini.open的ondestory里面,获取传过来的action,判断这个值,是否为"no",如果是,就return false阻止掉关闭
  1. ondestroy: function (action) {
  2.                         if (action == "no") return false;
  3.                     }
复制代码

Rank: 3Rank: 3

10#
发表于 2014-2-27 14:49:05 |只看该作者
factory 发表于 2014-2-27 14:18
那你不能用miniui的确认窗口,得用JS的confirm

你在子页面中在mini.open的ondestory里面,获取传过来的act ...

谢谢大神

Archiver|普加软件

GMT+8, 2024-11-16 08:39 , Processed in 1.028480 second(s), 9 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部