2013-03-06 31 views
72

Właśnie downloaded D3.js from d3js.org (link do pliku zip), rozpakować go i odwołuje go w poniższej stronie HTML:D3.js: "Uncaught SyntaxError: Nieoczekiwany token NIELEGALNY"?

<html> 
<head> 
<title>D3 Sandbox</title> 
<style> 
</head> 
<body> 
<script src="/d3.v3.js"></script> 
</body> 
</html> 

Ale gdy załadować stronę, moja konsola (w Chrome) daje mi to błąd:

Uncaught SyntaxError: Unexpected token ILLEGAL: line 2 

To nie podoba się pi and e symbols at the start of the file. Errrr ... co mogę z tym zrobić? Przesyłam plik za pomocą SimpleHTTPServer Pythona.

Aktualizacja: tak Wiem, że mogę po prostu połączyć się z wersją CDN, ale wolałbym serwować plik lokalnie.

+0

Problemem dla mnie było to, że simplehttpserver nie obsługuje domyślnie utf8: http://stackoverflow.com/questions/15288891/how-can-i-serve-files-with-utf-8-encoding-using- python-simplehttpserver – lewurm

Odpowiedz

128

Spróbuj określając UTF-8 kodowanie znaków w dokumencie gospodarza HTML:

<meta http-equiv="content-type" content="text/html; charset=UTF8">

+5

zrobił mi pewnie, z jakiegoś powodu dłuższa wersja nie. dzięki –

+5

Czy możesz skomentować, dlaczego jest to konieczne? – BBischof

+2

BBischof: D3 zawiera symbole UTF-8 (takie jak π) w dokumentach innych niż UTF8. –

4

Add 'charset = "UTF-8"'

<script src="/d3.v3.js" charset="utf-8"></script> 
+1

Niestety, to nie pomaga, jeśli użytkownik ma swój widok. > Kodowanie ustawienia automatycznego wykrywania w przeglądarce Chrome. Uruchamianie go poprzez uciążliwe bicie przy pomocy opcji -ascii-only jest bardziej niezawodne. –

+0

To naprawdę mi się udało. – dmeu

5

Próbowałem ustawienie charset w dokument i sam tag skryptu, ale wydaje się, że Chrome go to nie obchodzi. Nie jestem pewien, czy robię coś nie tak.

Znalazłem sukces, uruchamiając go przez uglify z opcją --ascii-only.

AKTUALIZACJA: okazuje się, że moje ustawienie Widok-> Kodowanie w przeglądarce Chrome nie działa w trybie automatycznego wykrywania, ale w niektórych kodach zachodnich. Nie wiem, dlaczego, ale zmieniając rozwiązanie problemu. Niedorzeczne, że to ustawienie zaatakuje właściwość zestawu znaków bezpośrednio na znaczniku skryptu. Biorąc pod uwagę, że użytkownicy mogą znajdować się w tej samej sytuacji i nie mogą tego zrozumieć, nadal będę wykorzystywać błędy, aby zapewnić sukces.

+0

miał ten sam problem. Zmiana ustawień kodowania na automatyczne wykrywanie naprawiła problem –

0

Sprawdź, czy między wszystkimi połączeniami ciągów znajduje się znak plus, jeśli ten błąd nie zostanie wygenerowany.

Powiązane problemy