Ich habe gerade D3.js von d3js.org heruntergeladen (Link zur Zip-Datei), es entpackt und auf der folgenden HTML-Seite darauf verwiesen:
<html>
<head>
<title>D3 Sandbox</title>
<style>
</head>
<body>
<script src="/d3.v3.js"></script>
</body>
</html>
Wenn ich diese Seite lade, gibt mir meine Konsole (in Chrome) den folgenden Fehler:
Uncaught SyntaxError: Unexpected token ILLEGAL: line 2
Die pi- und e-Symbole am Anfang der Datei gefallen nicht . Errrr ... was kann ich dagegen tun? Ich bediene die Datei mit Pythons SimpleHTTPServer.
Update: Ja, ich weiß, dass ich nur auf eine CDN-Version verlinken kann, aber ich würde es vorziehen, die Datei lokal bereitzustellen.
javascript
d3.js
Richard
quelle
quelle
Antworten:
Geben Sie den UTF-8-Zeichensatz im HTML-Hostdokument an:
<meta http-equiv="content-type" content="text/html; charset=UTF8">
D3 enthält UTF-8-Symbole (wie π), die in Nicht-UTF8-Dokumenten ungültig sind.
quelle
Das klingt nach einem Problem mit der Codierung. Ich empfehle das absolute Minimum, das jeder Softwareentwickler unbedingt über Unicode und Zeichensätze wissen muss (keine Ausreden!) . Trotz des etwas herablassenden Titels enthält es einige sehr nützliche Informationen. Insbesondere scheint Ihr Server die
d3.v3.js
Datei mit der falschen Codierung bereitzustellen.quelle
Füge 'charset = "utf-8" hinzu'
<script src="/d3.v3.js" charset="utf-8"></script>
quelle
Ich habe versucht, den Zeichensatz im Dokument und im Skript-Tag selbst festzulegen, aber Chrome scheint das nicht zu interessieren. Ich bin mir nicht sicher, ob ich etwas falsch mache.
Ich habe Erfolg gehabt, indem ich es zuerst mit der Option --ascii-only durch uglify ausgeführt habe.
UPDATE: Es stellte sich heraus, dass meine Einstellung Ansicht-> Codierung in Chrome nicht auf Auto-Detect eingestellt war, sondern auf westliche Codierung. Ich weiß nicht warum, aber eine Änderung hat das Problem behoben. Es ist lächerlich, dass diese Einstellung eine Zeichensatz-Eigenschaft direkt auf dem Skript-Tag übertrumpfen würde. In Anbetracht der Tatsache, dass sich Benutzer möglicherweise in derselben Situation befinden und nicht in der Lage sind, dies herauszufinden, werde ich uglify weiterhin verwenden, um den Erfolg sicherzustellen.
quelle
Überprüfen Sie, ob zwischen all Ihren Zeichenfolgenverkettungen ein Pluszeichen steht. Andernfalls wird dieser Fehler generiert.
quelle