In Greasemonkey, wenn ein Benutzer-Skript Dinge zum globalen Namespace hinzufügt, indem z. @require react-15.1.0.js
, was passiert, wenn die ursprüngliche Seite auch React aber eine ältere Version (zB react-15.0.0.js
) enthalten? Werden die globalen Namen irgendwie in separaten Umgebungen gespeichert, oder besteht die Möglichkeit, dass ein Benutzer-Skript eine Seite aufbrechen kann (und umgekehrt), indem globale Namen neu definiert werden?Können @required-Skripte mit anderen Skripten in Greasemonkey kollidieren?
-1
A
Antwort
0
Nein, sie können nicht miteinander kollidieren. Ich bin nicht klar in den Details des Ausführungsmodells von Greasemonkey, aber ich habe einen Test durchgeführt. Ich habe diese HTML-Datei, die lodash verwendet wenn eine Schaltfläche geklickt wird:
<html>
<head>
<script src='https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.13.1/lodash.min.js'></script>
</head>
<body>
<input type='button' id="btn" value="Invoke lodash">
<script type="text/javascript">
\t el = document.getElementById("btn")
\t el.addEventListener('click',function (argument) {
\t \t console.log("3 =", _.add(1,2));
\t })
</script>
</body>
</html>
Ich habe auch ein userscript, die _ entfernt:
// ==UserScript==
// @name Test greasmonkey overriding
// @namespace gm-overriding
// @version 1
// @grant none
// ==/UserScript==
_ = null
console.log("here is _:", _);
Das Benutzer-Script bewirkt, dass die nicht die lodash-Abhängigkeit beeinflusst, und der Button-Klick druckt immer noch die erwartete Ausgabe.
Verwandte Themen
- 1. jQuery-Plugins in Greasemonkey-Skripten verwenden
- 2. Gemeinsame Nutzung von Daten zwischen Greasemonkey-Skripten
- 3. Wie können Konstruktordefinitionen aus Merkmalen kollidieren?
- 4. Können Ruby-Threads beim Schreiben nicht kollidieren?
- 5. ScrollView kollidieren mit UItableview
- 6. Schließen von Fenstern mit Greasemonkey
- 7. Wohin mit PowerShell-Skripten?
- 8. Android-Layouts kollidieren mit Layouts
- 9. Listenelemente mit Greasemonkey entfernen
- 10. GreaseMonkey Hilfe mit getElementsByClassName
- 11. Werte kollidieren
- 12. kollidieren erweitert UIViews
- 13. GreaseMonkey Script
- 14. Javascript zwei window.onlick Funktionen kollidieren
- 15. Balls kollidieren - vPython Probleme
- 16. Debugging von fettmonkey-ähnlichen Skripten
- 17. Regex zum Parsen von Importen in anderen Skripten?
- 18. Warum kollidieren die Divs?
- 19. xpath greasemonkey
- 20. Öffnen mehrerer Hyperlinks mit Greasemonkey
- 21. Einfache Alternative zu Greasemonkey
- 22. Postgres in Docker; zwei Instanzen kollidieren Ports
- 23. Können wir .NET-Schnittstellen in PowerShell-Skripten implementieren?
- 24. Zwei getrennte SVGs kollidieren
- 25. Greasemonkey Speicher
- 26. Wann kollidieren Hashes?
- 27. Load remote URL mit Greasemonkey und jQuery
- 28. Einschränkungen von #! in Skripten
- 29. Variablen in TOAD-Skripten
- 30. SPRINTF in Shell-Skripten?
Der Test ist fehlerhaft und Ihre Schlussfolgerung ist ungenau. Skripte stören sich gegenseitig und mit der Seite die ganze Zeit. [Hier ist eine Klasse von Beispielen] (http://stackoverflow.com/questions/12146445/jquery-in-greasemonkey-1-0-conflicts-with-websites-using-jquery). ... Verwenden Sie in Ihrem Testskript 'window._ = null;' und beobachten Sie, was passiert. –