D3.js: Uncaught TypeError: Die Eigenschaft 'Dokument' von undefined kann nicht gelesen werden

8

Ich habe ein wirklich seltsames Problem mit der d3.js-Initialisierung. Im Skript d3.js versucht es ganz am Anfang var d3_document = this.document; zu erhalten, aber es erscheint der folgende Fehler:

%Vor%

Beim Debuggen gibt this.document undefined zurück.

Ich verwende yo webapp , um das Projekt zu generieren. Es verwendet Bower als Paketmanager und Schluck für den Build-Prozess (der babel für die ES2015-Funktionen verwendet).

Das Lustige ist, dass ich es mit Xampp getestet habe und es funktioniert gut!

Ich würde mich über einen Ratschlag freuen! Thnx!

    
Carlos Araya 22.02.2016, 17:42
quelle

1 Antwort

9

Es klingt nach etwas (am wahrscheinlichsten ist es Babel), das "use strict"; am Anfang der D3-Skriptdatei einfügt oder es in eine andere Datei mit "use strict" am oberen Ende kombiniert. Das bedeutet this im globalen Bereich (oder in einer Funktion, die ohne eine spezifische this aufgerufen wird) ist keine Referenz mehr auf das globale Objekt, es ist undefined . (Im Modus "lose" oder in einer Funktion, die ohne spezifischen this -Wert aufgerufen wird, ist this im globalen Gültigkeitsbereich ein Verweis auf das globale Objekt, auf das auch über die globale Variable 'window1' zugegriffen werden kann.)

Sie müssen Ihre d3.js aus der Liste der Skripte entfernen, die von Babel transformiert wurden, und sie einfach so einfügen, wie sie ist. Angenommen, Sie verwenden die normale d3.js -Datei, sieht das so aus:

%Vor%

Das hängt davon ab, dass man im lockeren Modus läuft.

    
T.J. Crowder 22.02.2016 17:49
quelle