jQuery MiniUI

标题: 想给窗口关闭加快捷键,并且加是否关闭的提示,如何实现 [打印本页]

作者: muzizhuben    时间: 2014-2-27 10:50:21     标题: 想给窗口关闭加快捷键,并且加是否关闭的提示,如何实现

想给窗口关闭加快捷键,并且在准备关闭的时候加确认关闭的提示,如何加此快捷键?如何加提示?
作者: factory    时间: 2014-2-27 10:58:12

监听页面整体的按键事件

通过keycode来区分按键,

mini.confirm()来做确认提示弹出
参考:http://www.miniui.com/demo/#src=messagebox.html
作者: muzizhuben    时间: 2014-2-27 11:03:14

factory 发表于 2014-2-27 10:58
监听页面整体的按键事件

通过keycode来区分按键,

如何获取窗口关闭事件呢? 提示:是否确认关闭? 如果选择否  就不关闭!
在mini.open 的ondestroy 加取消 是没有效果的
作者: factory    时间: 2014-2-27 11:14:51

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

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

在回调里面 执行window.CloseOwnerWindow();
作者: muzizhuben    时间: 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;
                                        }
                                });
                        }
        }
作者: factory    时间: 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
作者: factory    时间: 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;阻止掉关闭
作者: muzizhuben    时间: 2014-2-27 13:43:40

factory 发表于 2014-2-27 12:12
或者你用window来做,然后window可以监听onbeforecolick事件

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

有mini.open的  也有普通的页面  要求就是 只要点X  就提示是否确认关闭 如果选择否,就不关闭 否则执行关闭。 大神 能不能写个例子呢 万分感谢
作者: factory    时间: 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.                     }
复制代码

作者: muzizhuben    时间: 2014-2-27 14:49:05

factory 发表于 2014-2-27 14:18
那你不能用miniui的确认窗口,得用JS的confirm

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

谢谢大神




欢迎光临 jQuery MiniUI (http://miniui.com/discuss/) Powered by Discuz! X2