嘿,我使用此javascript未能获得所需的结果。当我在IE中执行它时,这就是控制台中的内容:
开始
在第2步
第1步存在!
第1步存在!
第1步存在!
第1步存在!
第1步存在!
第1步存在!
第1步存在!
等...
这是我的JavaScript代码:
javascript: (function () {
var t = "34637",
a = "fhh",
l = "Rule",
i = "baywatch",
o = "NMN",
n = "C",
s = "US",
d = "US",
q = "M",
m = "IA",
p = "05/22/1994",
y = "DL",
z = "Ztghy663";
console.log("Starting");
var c = setInterval(function () {
if ($('[title="Submit a Search"]').length) {
console.log("Step 1 Exists!");
clearInterval(c);
$('[title="Submit a Search"]').click();
}
}, 100);
console.log("at Step 2");
c = setInterval(function () {
console.log("Step 2!");
if ($('[data-test-id="201707241746357527497-Label"]').length) {
console.log("Step 2 Exists!");
clearInterval(c);
t = prompt("Please enter the number:", "");
$('[data-test-id="2017072417423205261024660"]').val = t; /*Sets the Number textbox*/
console.log("at Step 3");
}
}, 100);
})();
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<h1 title="Submit a Search"> </h1>
我对此不太确定。我的想法是它将开始,直到找到它,才离开该循环。它单击标题“提交搜索”,所以我知道这是可行的,但是正如您在上方看到的那样,即使找到了标题,它仍会继续循环播放。
我确定我只是在寻找一些简单的东西,但是现在我找不到任何错误的代码...
答案 0 :(得分:0)
问题在于,当您在此行中存储间隔ID时,这是为第1步定义的
var c = setInterval(function () {
您可以用此行覆盖它,并在第2步中对其进行定义
c = setInterval(function () {
因此,它尝试清除step1方法内部的step 2函数的间隔,因此不会清除step1 setInterval。
您只需要将两个间隔都存储在单独的变量中,以便可以清除这两个间隔。
更新的工作代码。
javascript: (function () {
var t = "34637",
a = "fhh",
l = "Rule",
i = "baywatch",
o = "NMN",
n = "C",
s = "US",
d = "US",
q = "M",
m = "IA",
p = "05/22/1994",
y = "DL",
z = "Ztghy663";
console.log("Starting");
var c1 = setInterval(function () {
if ($('[title="Submit a Search"]').length) {
console.log("Step 1 Exists!");
clearInterval(c1);
$('[title="Submit a Search"]').click();
}
}, 100);
console.log("at Step 2");
var c2 = setInterval(function () {
console.log("Step 2!");
if ($('[data-test-id="201707241746357527497-Label"]').length) {
console.log("Step 2 Exists!");
clearInterval(c2);
t = prompt("Please enter the number:", "");
$('[data-test-id="2017072417423205261024660"]').val = t; /*Sets the Number textbox*/
console.log("at Step 3");
}
}, 100);
})();
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<h1 title="Submit a Search"> </h1>
<h2 data-test-id="201707241746357527497-Label"> </h2>