如何知道模式框(警报,提示,确认...)是否已在javascript中被禁用?

Seb*_*bas 8 javascript modal-dialog

我有一个基于私人网络的应用程序,有时我真的向用户询问他们在特定情况下想做什么.为此,我正在使用confirmjavascript 的功能.

与任何其他模式框一样,在几次弹出窗口之后,用户可以选择通过单击如下所示的小框来禁用它们:

在此输入图像描述

问题是,如果他们点击一次,他们就不会看到其他消息和响应confirm被假设0,这是令人困惑的,因为基本上它意味着所有需要他们确认的行动都被取消而没有任何警告!刷新页面没有帮助,他们必须关闭它并重新打开它才能再次工作.

我可以检测他们检查那个小盒子的时间吗?

Ble*_*der 8

选中该框后,对话框将立即"关闭".您可以检查该框是否异常快速关闭:

function dialog(message, success, failure) {
    var open_time = new Date();
    var result = alert(message);
    var close_time = new Date();

    if (close_time - open_time < 10) {
        failure();
    } else {
        success(result);
    }
}

dialog('Hello', function(result) {
    // The dialog probably was closed by the user
}, function() {
    // The dialog was closed really fast.
    // Either the user was typing while it popped up or the browser didn't
    //  display it in the first place
});
Run Code Online (Sandbox Code Playgroud)

虽然只是使用CSS和HTML来创建模态对话框,但在浏览器和平台之间可能会更容易和更一致.我个人不喜欢Chrome的方法.

演示:http://jsfiddle.net/tS9G6/4/

我看了一下Chromium的来源,并且该属性没有存储在任何地方,因此似乎没有一些特定于Chromium的属性可供您查看.