如何模拟alert/confirm/prompt实现阻断程序运行
场景:在执行js的时候,我们希望运行到某处,进行用户交互,根据交互的内容,运行下面的程序;下面的js程序需要用的和用户交互的内容,所以,和用户交互时,后面的程序必须停止运行
方案:
- 1、 原生的alert/confirm/prompt是可以实现这样的操作的,但是它们的界面很丑,而且有些浏览器会禁掉这个三个操作
- 2、利用插件,比如弹出层插件 layer:http://layer.layui.com/
下面就说下方案2:
官网下载layer组件,直接引入<script src="layer.js"></script>
如下所示:把后续要执行的js代码放入函数中function(value, index, elem){},这样只有用户输入交互内容,才会执行后面的程序。
layer.prompt({
"title":"请输入报告名字",
yes:function(){}, //就是点击确定按钮的时候执行的操作;
cancel:function(){}, //就是点击取消的时候执行的操作;
end:function(){} //就是层在销毁的时候(等同于confirm结束的时候)
},
function(value, index, elem){
layer.close(index); //关闭对话框
$.ajax({
type:"POST",
url: url,
contentType: 'application/json;charset=utf-8',
data: JSON.stringify(data),
dataType:'json',
success:function (result) {
{#$('#infomation').html('<div style="color:green">执行成功,请等待一会<i class="fa fa-smile-o"></i>……<i class="fa fa-refresh fa-spin"></i></div>');#}
{#$('#report_name').attr('hidden','hidden');#}
{#$('#infomation').removeAttr('hidden');#}
{#$('#modal-default').modal('show');#}
window.location.href = "/onlinePerform/jmeterDetail/" + result.project_id +"/"+result.scene_id+"/"+result.report_id
},
fail: function (result,result1,result2) {
{#$('#infomation').html('<div style="color:red">执行失败,请检查网络问题<i class="fa fa-smile-o"></i>……<i class="fa fa-refresh fa-spin"></i></div>');#}
{#$('#report_name').attr('hidden','hidden');#}
{#$('#infomation').removeAttr('hidden');#}
{#$('#modal-default').modal('show');#}
console.error(result)
console.error(result1)
console.error(result2)
}
})
});
参考:
1、http://www.layui.com/doc/modules/layer.html#layer.prompt
如何模拟alert/confirm/prompt实现阻断程序运行的更多相关文章
- alert/confirm/prompt 处理
webdriver 中处理JavaScript 所生成的alert.confirm 以及prompt 是很简单的.具体思路是使用switch_to_alert()方法定位到alert/confirm/ ...
- 转:python webdriver API 之alert/confirm/prompt 处理
webdriver 中处理 JavaScript 所生成的 alert.confirm 以及 prompt 是很简单的.具体思路是使用switch_to.alert()方法定位到 alert/conf ...
- selenium python (十一)alert/confirm/prompt的处理(js中的弹出框)
webdriver中处理js所生成的alert.confirm以及prompt,采用switch_to_alert()方法定位到alert/confirm/prompt.然后使用text/accept ...
- Python脚本控制的WebDriver 常用操作 <二十二> 处理alert / confirm / prompt
测试用例场景 webdriver中处理原生的js alert confirm 以及prompt是很简单的.具体思路是使用switch_to.alert()方法定位到alert/confirm/prom ...
- Java Selenium - 几种对话框处理Alert\confirm\prompt
1. Alert , 先用常规办法定位到能触发alert的按钮 , 然后 Alert alert = driver.switchTo().alert(); alert.accept(); 如果aler ...
- 2.11 alert\confirm\prompt
2.11 alert\confirm\prompt 前言 不是所有的弹出框都叫alert,在使用alert方法前,先要识别出到底是不是alert.先认清楚alert长什么样子,下次碰到了,就可以用 ...
- Python+Selenium学习--alert/confirm/prompt 处理
场景 webdriver 中处理JavaScript 所生成的alert.confirm 以及prompt 是很简单的.具体思路是使用switch_to.alert()方法定位到alert/confi ...
- Selenium2学习(十二)-- alert\confirm\prompt
前言 不是所有的弹出框都叫alert,在使用alert方法前,先要识别出到底是不是alert.先认清楚alert长什么样子,下次碰到了,就可以用对应方法解决. alert\confirm\prompt ...
- selenium自动化测试入门 Alert/Confirm/Prompt 弹出窗口处理
一.Alert/Confirm/Prompt弹出窗口特征说明 Alert弹出窗口: 提示用户信息只有确认按钮,无法通过页面元素定位,不关闭窗口无法在页面上做其他操作. Confirm 弹出窗口: 有确 ...
随机推荐
- 编程哲学之 C# 篇:007——如何创造万物
上帝拥有创建万物的能力,本文介绍创造万物的道,让你也拥有上帝般创造万物的能力! 道 中国哲学家,道家学派创始人--老子,在<道德经>写到: 道生一,一生二,二生三,三生万物 那么,是什么 ...
- loj2276 「HAOI2017」新型城市化
给出的图是一个二分图(显然--吗),一个图的最大团=其补图的最大独立集,因此二分图的最大独立集就是补图的最大团. 欲使补图最大团变大,则要最大独立集变大.二分图最大独立集=点数-最小点覆盖.最小点覆盖 ...
- 用上GIT你一定会爱上他
前言 Git是一个开源的分布式版本控制系统,用以有效.高速的处理从很小到非常大的项目版本管理. Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控 ...
- [UnicodeEncodeError]:Django中解决URL中文解释乱码问题
Django中在使用HttpResponseRedirect的时候,跳转URL中如果存在中文,会报错:会报UnicodeEncodeError错误. 解决办法: 使用urlquote对URL进行编码 ...
- Js 希望某链接只能点击一次
<a onclick=”function(){...}”> 希望这连接只能执行一次 <a onclick=”function(){...}; this.onclick()=funct ...
- java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()解决办法
代码改变世界 java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.pre ...
- js对象的扁平化与反扁平化
Object.flatten = function(obj){ var result = {}; function recurse(src, prop) { var toString = Object ...
- NOIP2017赛前模拟(4):总结
题目: 1.打牌 给定n个整数(n<=1000000),按照扑克牌对子(x,x)或者顺子(x,x+1,x+2)打出牌···问最多可以打出多少次对子或者顺子?牌的大小<=1000000 2. ...
- mybatis学习(五)——增删改查及自增主键的获取
一.mybatis的增删改查 1.修改hotelMapper接口 package com.pjf.mybatis.dao; import com.pjf.mybatis.po.Hotel; publi ...
- 归并排序,时间复杂度nlogn
思路: /* 考点: 1. 快慢指针:2. 归并排序. 此题经典,需要消化吸收. 复杂度分析: T(n) 拆分 n/2, 归并 n/2 ...