Подтвердить что ты не робот

D3.js: "Неиспользуемый синтаксисError: Неожиданный токен ILLEGAL"?

Я просто загрузил D3.js из d3js.org (ссылка на zip файл), разархивировал его и ссылался на него в следующем HTML-страница:

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

Но когда я загружаю эту страницу, моя консоль (в Chrome) дает мне эту ошибку:

Uncaught SyntaxError: Unexpected token ILLEGAL: line 2

Не нравится символы pi и e в начале файла. Errrr... что я могу сделать по этому поводу? Я обслуживаю файл с помощью python SimpleHTTPServer.

Обновление: да, я знаю, что могу просто ссылаться на версию CDN, но я бы предпочел использовать файл локально.

4b9b3361

Ответ 1

Попробуйте указать кодировку UTF-8 в документе хоста HTML:

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

Ответ 2

Это звучит как проблема с кодировкой. Я рекомендую Абсолютный минимум Каждый разработчик программного обеспечения Абсолютно, положительно должен знать о Unicode и наборах символов (без отговорок!). Несмотря на несколько снисходительное название, он содержит очень полезную информацию. В частности, похоже, что ваш сервер обслуживает файл d3.v3.js с неправильной кодировкой.

Ответ 3

Добавить 'charset = "utf-8" '

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

Ответ 4

Я попытался установить кодировку в документе и в теге script, но Chrome, похоже, не заботится. Не уверен, что я делаю что-то неправильно.

Я нашел успех, выполнив его с помощью uglify с опцией -ascii-only.

UPDATE: отключает параметр View- > Encoding в Chrome, но не в Auto-Detect, а в некоторой западной кодировке. Не знаю, почему, но изменение, которое разрешило проблему. Смешно, что эта настройка будет превзойти свойство charset прямо на теге script. Учитывая, что пользователи могут находиться в одной и той же ситуации и не смогут понять это, я все равно буду использовать uglify для обеспечения успеха.

Ответ 5

Проверьте, есть ли знак плюса между всеми вашими конкатенациями строк, если вы не создадите эту ошибку.