调用浏览器的confirm时弹出确认框之后选择禁用,当代码再次调用confirm方法时还是会返回false,js能否知道浏览器的confirm已经被禁用。
怪我咯2017-05-19 10:45:16
没有想到优美的解决方案。
有个讨巧的方式:如果用户选择了禁用,那么在调用这个方法的时候,不会阻塞代码,会立刻执行下段代码。我们可以设置个计时器,时间在毫秒级结束,就说明客户端阻止了弹窗。
var begin = Date.now();
//如果客户端没有禁用confirm,那么这个弹窗会阻塞代码继续往下执行,直到用户点了确认或取消,
// 那么end与start之间的值就会比较大了。
//反之,end与start之间的值就非常小了,毫秒级。
var result = window.confirm('hello');
var end = Date.now();
if (end - begin < 10) {
console.log('用户禁用了confirm弹窗');
}