javascript - 如何基于 POPUP 可见性 javascript 执行代码
问题描述
我在具有以下 ID 的表中有 3 行:
listdefintion421_1_41-rowse10;
listdefintion421_1_41-rowsel2;
listdefintion421_1_41-rowsel3;
和一个具有以下 ID 的按钮:buttonZrd8UldL24I31BcWSIkSiW_36
当我在控制台中执行此命令时:
var btn1 = document.getElementById('listdefintion421_1_41-rowsel0');
btn1.click();
var okBtn = document.getElementById('buttonZrd8UldL24I31BcWSIkSiW_36');
okBtn.click();
出现以下弹出窗口并且可见性可见:
var popupVisibility= document.getElementById("sap-ui-blocklayer-popup").style.visibility;
是否可以自动化以下逻辑?
//Ok btn
var okBtn = document.getElementById('buttonZrd8UldL24I31BcWSIkSiW_36');
//Popup
var popupVisibility= document.getElementById("sap-ui-blocklayer-popup").style.visibility;
//This will click on row1
var btn1 = document.getElementById('listdefintion421_1_41-rowsel0');
btn1.click();
//Click the ok Btn
okBtn.click();
/* I'm sutck here */
//I want when popupVisibility change from visible to hidden, the below code should execute
//This will click on row2
var btn2 = document.getElementById('listdefintion421_1_41-rowsel2');
btn2.click();
//Click the ok Btn
okBtn.click();
/* I'm sutck here */
//Again, when popupVisibility change from visible to hidden the below code should execute
var btn3 = document.getElementById('listdefintion421_1_41-rowsel3');
btn3.click();
//Click the ok Btn
okBtn.click();
更新
到目前为止,我想出了这个:
var RowIds = [ "2", "3","4","5","7","9"];
function funcE(i) {
var rowBtn= document.getElementById('listdefintion421_1_41-rowsel'+i);
rowBtn.click();
var btnok = document.getElementById('buttonZrd8UldL24I31BcWSIkSiW_36');
btnok.click();
}
for( var i=0 ; i< RowIds.length ; i++)
{
funcE(RowIds[i]);
var visibility = document.getElementById("sap-ui-blocklayer-popup").style.visibility;
while(visibility == "visible")
{
visibility = document.getElementById("sap-ui-blocklayer-popup").style.visibility;
}
一旦弹出窗口从可见变为隐藏,是否可以增加 i 值?
解决方案
一种可能的方法是创建一个检查弹出窗口可见性的 Intervall。如果可见,Intervall 可以执行您的回调函数,它将触发下一行脚本。
推荐阅读
- wso2 - WSO2 EI - API 上下文无法识别
- javascript - 流式使用备忘录钩子
- parallel-processing - 将功能分配给多个任务
- c# - Windows 服务无法访问网络驱动器路径 asp.net
- r - 如何将 xlsx 文件读入 R 并将其转换为 tsibble 对象?
- docker - 在 docker compose 中使用包含“,”的 shell 命令
- apache-kafka - 在 python 中聚合 Kafka 记录
- c++ - 如何使用 If 和 else 语句在向量中搜索
- windows - 通过版本 10.0.2-internal 的 JavaFX 运行时使用版本 11.0.1 的 JavaFX API 加载 FXML 文档
- android - 如何安装两个具有相同包名的Android应用程序