layer插件实现在弹出层中弹出一警告提示并关闭弹出层的方法


Posted in Javascript onSeptember 24, 2019

昨天layer插件弹出层关闭问题弄的我直挠头,短短几行代码,用了我将近2个钟头才解决。我的使用场景是这样。在页面中用layer.open弹出一个层,在层内是微信支付二维码,客户扫码支付。支付成功后关闭此弹出层,并提示项目投递成功,然后再跳转到其他页面。为了监控微信二维码扫码支付是否成功。我利用了每隔三秒,查询下支付订单,查看支付订单的支付状态是否改变。在实际操作中由于使用的是location.href做跳转,然而跳转执行的非常慢,要10几秒才能成功,这不能忍。只能退而求其次,只是提示投递成功,然后关闭弹出层。由于关闭弹出层,及弹出警告提示的相关代码是在弹出层所在页面执行。

实际代码在执行过程当中遇到了各种问题。

$(function () {
      setInterval(GetDeliverProjectPayStatusSuccess, 3000);
    });
    function GetDeliverProjectPayStatusSuccess() {
      $.post("/ajax/GetDeliverProjectPayStatus.ashx", { OrderNo:"<%=Request.QueryString["OrderNo"] %>" }, function (data) {
        console.info(data);
 
        if (data == 1) {
  parent.layer.closeAll();
          layer.alert("项目投递成功");
 
        }
      });
    }

首先尝试的代码如上。先关闭弹出层,然后提示项目投递成功。这尝试的结果是,弹出层被关闭了。却没有任何提示。为什么这样执行,分析的结果是关闭弹出层,意味着弹出页面被关闭。弹出页面被关闭了。在弹出页面存在的layer.alert代码也就无从执行。然后这两行代码调换位置。可仍然是弹出层被关闭了。却没有提示。这个分析的原因是就像javascript中的alert与location.href一样。如果先alert然后在location.href,也不会执行alert,或者说其实有执行,但是由于系统执行的非常快,还没等你看到alert信息,浏览器已经跳转了。这里也是,还没等你看到项目投递成功的信息,弹出层已经关闭了。

又尝试了带回调函数的layer.alert,等客户点击layer.alert的确定按钮后再执行parent.layer.closeAll() 来关闭弹出层。然而残酷的现实是,由于这个是每隔三秒执行一次post请求,结果就是如果你点击关闭按钮过慢,它会每隔3秒弹出项目投递成功的提示。这怎么能用。难道你要求客户必须快速反应,点击关闭按钮?经过不断尝试,最终还是找到了一个方法解决了这个问题。

能够很好解决此问题的代码如下:

$(function () {
      setInterval(GetDeliverProjectPayStatusSuccess, 3000);
    });
    function GetDeliverProjectPayStatusSuccess() {
      $.post("/ajax/GetDeliverProjectPayStatus.ashx", { OrderNo:"<%=Request.QueryString["OrderNo"] %>" }, function (data) {
        console.info(data);
 
        if (data == 1) {
          parent.layer.alert("项目投递成功");
          var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
          parent.layer.close(index); //再执行关闭 
 
        }
      });
    }

以上这篇layer插件实现在弹出层中弹出一警告提示并关闭弹出层的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jquery提交form表单简单示例分享
Mar 03 Javascript
微信小程序 自己制作小组件实例详解
Dec 22 Javascript
详解bootstrap的modal-remote两种加载方式【强化】
Jan 27 Javascript
Google 爬虫如何抓取 JavaScript 的内容
Apr 07 Javascript
JavaScript for循环 if判断语句(学习笔记)
Oct 11 Javascript
使用express搭建一个简单的查询服务器的方法
Feb 09 Javascript
vue弹窗组件的实现示例代码
Sep 10 Javascript
vue服务端渲染页面缓存和组件缓存的实例详解
Sep 18 Javascript
浅入深出Vue之组件使用
Jul 11 Javascript
Vue父子传递实例讲解
Feb 14 Javascript
微信小程序开发(三):返回上一级页面并刷新操作示例【页面栈】
Jun 01 Javascript
Web应用开发TypeScript使用详解
May 25 Javascript
解决layer.prompt无效的问题
Sep 24 #Javascript
layer.prompt使文本框为空的情况下也能点击确定的方法
Sep 24 #Javascript
layui-table获得当前行的上/下一行数据的例子
Sep 24 #Javascript
通过实例了解JS 连续赋值
Sep 24 #Javascript
layui--select使用以及下拉框实现键盘选择的例子
Sep 24 #Javascript
JS防抖和节流实例解析
Sep 24 #Javascript
vue.js实现图书管理功能
Sep 24 #Javascript
You might like
php批量缩放图片的代码[ini参数控制]
2011/02/11 PHP
PHP实现读取一个1G的文件大小
2013/08/24 PHP
php判断并删除空目录及空子目录的方法
2015/02/11 PHP
Windows下PHP开发环境搭建教程(Apache+PHP+MySQL)
2016/06/13 PHP
让IE8支持DOM 2(不用框架!)
2009/12/31 Javascript
Javascript匿名函数的一种应用 代码封装
2010/06/27 Javascript
基于Jquery插件开发之图片放大镜效果(仿淘宝)
2011/11/19 Javascript
兼容主流浏览器的iframe自适应高度js脚本
2014/01/10 Javascript
jquery 插件实现多行文本框[textarea]自动高度
2015/03/04 Javascript
Bootstrap每天必学之标签页(Tab)插件
2020/08/09 Javascript
使用JavaScript实现ajax的实例代码
2016/05/11 Javascript
非常酷炫的Bootstrap图片轮播动画
2016/05/27 Javascript
js HTML5多图片上传及预览实例解析(不含前端的文件分割)
2016/08/26 Javascript
js基础之DOM中document对象的常用属性方法详解
2016/10/28 Javascript
Vue.js实战之使用Vuex + axios发送请求详解
2017/04/04 Javascript
AngularJS中使用ngModal模态框实例
2017/05/27 Javascript
angular内置provider之$compileProvider详解
2017/09/27 Javascript
VueJs里利用CryptoJs实现加密及解密的方法示例
2019/04/29 Javascript
layui问题之模拟table表格中的选中按钮选中事件的方法
2019/09/20 Javascript
详解Python中for循环的使用
2015/04/14 Python
Python中类型关系和继承关系实例详解
2015/05/25 Python
selenium python浏览器多窗口处理代码示例
2018/01/15 Python
PyTorch CNN实战之MNIST手写数字识别示例
2018/05/29 Python
pytorch中tensor的合并与截取方法
2018/07/26 Python
python2爬取百度贴吧指定关键字和图片代码实例
2019/08/14 Python
Django模板导入母版继承和自定义返回Html片段过程解析
2019/09/18 Python
Django 404、500页面全局配置知识点详解
2020/03/10 Python
Python爬虫抓取论坛关键字过程解析
2020/10/19 Python
python制作一个简单的gui 数据库查询界面
2020/11/19 Python
会走动的图形html5时钟示例
2014/04/27 HTML / CSS
优秀的2014年两会精神解读
2014/03/17 职场文书
2015年八一建军节活动总结
2015/03/20 职场文书
《最后一头战象》教学反思
2016/02/16 职场文书
php远程请求CURL案例(爬虫、保存登录状态)
2021/04/01 PHP
讲解Python实例练习逆序输出字符串
2022/05/06 Python
Spring Boot优化后启动速度快到飞起技巧示例
2022/07/23 Java/Android