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."