Ik probeer een stukje JavaScript in een bestaande website te injecteren om zo het e.e.a. voor mijzelf gebruiksvriendelijker te maken. Tot nu toe is al veel gelukt, maar ik krijg het nog niet voor elkaar om een "self-invoking" functie te vervangen door een aangepaste functie.
Ik heb nu mijn testje zo staan:
Ik gebruik Firefox 64.0, en via about:debugging laadt ik handmatig mijn aangepaste script in:
En dit is mijn code van Test.js:
De scripts werken op zich prima. TestP1 telt naar boven op, en TestP3 telt naar beneden.
Helaas wordt bij het injecteren van het tweede script, het eerste script niet overschreven en het wordt er gewoon onder aan toegevoegt. (Dat is te zien dat TestP1 optelt.)
Hoe kan ik die eerste functie aanpassen (of verwijderen) terwijl ik geen voorgedefinieerde variabele heb waar ik met het tweede stukje JavaScript naar kan verwijzen?
Ik heb nu mijn testje zo staan:
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| <html> <head> <title>Main</title> <meta charset="UTF-8"> </head> <body> <script> (function () { var x = 0; setInterval(Timer, 1000); function Timer() { x++; document.getElementById("TestP1").innerHTML = x; document.getElementById("TestP2").innerHTML = x; } })(); </script> <p id="TestP1">Counter<p> <p id="TestP2">Counter<p> <p id="TestP3">Counter<p> </body> </html> |
Ik gebruik Firefox 64.0, en via about:debugging laadt ik handmatig mijn aangepaste script in:
JSON:
1
2
3
4
5
6
7
8
9
10
11
12
| { "manifest_version": 2, "name": "modify-page", "version": "1.0", "content_scripts": [ { "matches": ["http://127.0.0.1/Test/*"], "js": ["Test.js"] } ] } |
En dit is mijn code van Test.js:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
| (function () { var x = 0; setInterval(Timer, 1000); function Timer() { x--; document.getElementById("TestP2").innerHTML = x; document.getElementById("TestP3").innerHTML = x; } })(); |
De scripts werken op zich prima. TestP1 telt naar boven op, en TestP3 telt naar beneden.
Helaas wordt bij het injecteren van het tweede script, het eerste script niet overschreven en het wordt er gewoon onder aan toegevoegt. (Dat is te zien dat TestP1 optelt.)
Hoe kan ik die eerste functie aanpassen (of verwijderen) terwijl ik geen voorgedefinieerde variabele heb waar ik met het tweede stukje JavaScript naar kan verwijzen?
Speel ook Balls Connect en Repeat