Het gaat om het script hieronder. Wat ik probeer te doen is het volgende:
Maar zodra de <span> verdwijnt, gaat het fout en raakt de console in een infinite loop:
Wat doe ik verkeerd?
- het script runnen in de browser console
- script checkt elke seconde of een bepaalde <span> bestaat of niet
- zodra de <span> verschijnt, output naar de console "span exists"
- blijf elke seconde checken. Zolang de <span> er is, doe niets. Maar zodra hij verdwijnt, schrijf in console "span disappeared"
- de <span> kan meerdere inhoud hebben (buy, sell, etc) maar dat doet er op dit moment niet toe. Maar daarom heb ik dus dat if-statement
- Zodra de <span> verschijnt, krijg ik de verwachte uitput
code:
1
| span appeared |
Maar zodra de <span> verdwijnt, gaat het fout en raakt de console in een infinite loop:
code:
1
2
3
4
5
6
| span disappeared span appeared span disappeared span appeared span disappeared ... |
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
| function f() {
try {
b = document.querySelector('#main > header > div>div>span').textContent;
}
catch (TypeError) { // element does not exit
if (span_exists) {
// if it does not exist, but it did previously, then it just disappeared
console.log("span disappeared" + "\n");
span_exists = false;
}
return;
}
if (b === "buy") { // element exists
if (span_exists) {
// span existed already.. do nothing
}
else { // span just appeared
console.log("span appeared" + "\n");
span_exists = true;
}
}
}
function check_span() {
span_exists = false;
interval = setInterval(f, 1000);
alert("checking for span");
return interval;
}
> check_span() |
Wat doe ik verkeerd?
"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."