2017-12-27 48 views
0

Wenn ich eine Seite, wie ein SPA, besuche, weiß ich, dass einige Objekte zu window durch seinen Code hinzugefügt werden.Woher weiß man, welche Objekte vom aktuellen Seitencode zum Fenster hinzugefügt wurden?

Gibt es eine Möglichkeit zu wissen, was native Browser-Objekte/Methoden sind und welche von der App hinzugefügt wurden?

+0

Verwandt oder ein Duplikat von https: // stackoverflow.com/questions/17276206/list-all-js-global-variables-used-by-site-not-all-defined? – xadhix

Antwort

0

Das Aufrufen der Fenstervariable gibt Ihnen einen Überblick über den gesamten Inhalt. Ich denke, wenn Sie bekannt mögen, wie viele Funktionen enthält es zur Zeit Sie so etwas wie tun könnte:

Object.keys(window).length; //or just Object.keys for the names 

Um bekannt, ob neue Funktionen zum Fenster Objekt muß ihre die Anzahl der Schlüssel bekannt hinzugefügt wurden, wo, bevor sie in dem enthalten oder nur durch die statische Nummer bekannt. Um nur ein Beispiel zu geben. Hier auf Stackoverflow enthält das Fensterobjekt nur 246 Schlüssel. Aber auf etwas wie Google habe ich 1597 Schlüssel gezählt. Es hängt also wirklich von der App ab, die Sie verwenden.

Also, was Sie tun könnten, ist eine Funktion schreiben, die überprüft, ob die Anzahl der Schlüssel erhöht wurde und wenn das passiert herausnehmen des Schlüssels und verschieben es in ein Array innerhalb der Funktion.

Das genau, was ich von Ihrer Frage bekomme.

0

Ich denke, Sie suchen nach Mutation Observer. Mit ihnen können Sie nach neu hinzugefügten oder entfernten DOM-Elementen lauschen. Ich glaube, dass Sie auch über Attribut- und Textänderungen informiert werden.

Hier ist ein Link zu einem kurzen Artikel über sie. Mutation Observers

Hoffe, das hilft!

0

Angenommen, Sie haben zwei separate Registerkarten. Eine, die dem Fenster nichts hinzufügt (die schwer zu finden ist), die einige Eigenschaften hinzugefügt hat.

haben beide offen.

im Rein man tun: a = Object.keys(window); JSON.stringify(a);

Kopie das Ergebnis und dass Sie auf die Registerkarte verschieben, die einige Eigenschaften Fenster hinzugefügt haben. dann tun a = JSON.parse(<Ctrl + v>) und b = Object.keys(window)

und schließlich: c = b.filter(p=>a.indexOf(p)=== -1)

jetzt c Namen aller Eigenschaften enthält, die von dieser Registerkarte Fensterobjekt hinzugefügt wurden;

TIPP: Firefox Developer Edition macht das standardmäßig: a screenshot of how it works Beachten Sie, dass window ‚s Standardeigenschaften sind in einer anderen Eigenschaft getrennt (genannt [default properties])

Verwandte Themen