JavaScript 和 jQuery  弹窗对比

javascript 的三种弹框对象隶属于window对象,并且都会阻塞当前事件和脚本,直到用户操作完成才会继续执行后续事件和脚本.不能使用html元素.

jQuery(jquery-confirm插件) jQuery的弹出窗口是通过html元素和一些js事件模拟出来的,隶属于document对象,而且不能够阻塞其他的事件和脚本执行.

 

:

jQuery 脚本

脚本1:

var $confirm= $.confirm('是否继续?');  //执行后返回当前弹窗的jQuery对象
location.reload()


 

这个脚本,并不会等待用户点击确定后,才继续执行下面的重载操作.

$.confirm只是生成了一个新的html元素,css控制展现出了弹窗效果.

然后在确定和取消按钮上绑定了js事件,用户点击时触发回调函数.

此时$.confirm的任务已经完成了,并不会等到用户点击了确认或者取消按钮后才执行后续操作.

这种情况,后面的语句当然会继续执行,所以页面会直接刷新,不会去等待用户操作.

 

脚本2:

把需要确定后才能执行的操作,放到到弹窗的回调函数中,来防止用户没有操作时页面就被刷新

$.confirm({
    title: '我是标题',
    content: '是否继续?',
    buttons: {
        confirm: function () {
            location.reload()
        },
        cancel: function () {
            $.alert('Canceled!');
        }
    }
});


 

JavaScript脚本

var ret=confirm('是否继续?');   //返回true或者false
location.reload()


confirm属于window对象,可以阻塞当前页面,直到用户点击确认或者取消按钮时,当前页面才会刷新.

 

JavaScript的几种弹窗

不能使用html元素定制页面展示.

警告消息框 (alert

弹出提示消息.

确认消息框 (confirm

弹出一个消息,点击确认返回true点击取消返回false

提示消息框 (prompt

弹出输入框,点击确认返回输入框内内容,点击取消返回null

 

jQuery jquery-confirm

 

可以使用html元素定制弹窗展示,可以使用回调函数.

把所有的脚本操作放入回调函数内,可以防止例子中的页面被刷新.

 

https://craftpip.github.io/jquery-confirm/