D3.js: “Error de sintaxis no detectado: token inesperado ILEGAL”?

3 minutos de lectura

yo solo he descargado D3.js de d3js.org (enlace al archivo zip), lo descomprimió y lo refirió en la siguiente página HTML:

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

Pero cuando cargo esta página, mi consola (en Chrome) me da este error:

Uncaught SyntaxError: Unexpected token ILLEGAL: line 2

no le gusta el símbolos pi y e al principio del archivo. Errrr… ¿qué puedo hacer al respecto? Estoy sirviendo el archivo con SimpleHTTPServer de python.

Actualización: sí, sé que solo puedo vincular a una versión de CDN, pero preferiría servir el archivo localmente.

  • el problema para mí fue que simplehttpsserver no es compatible con utf8 por defecto: stackoverflow.com/questions/15288891/…

    – lewurm

    31/10/2014 a las 16:19

avatar de usuario
Laurent Jegou

Intente especificar el conjunto de caracteres UTF-8 en el documento host HTML:

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

D3 contiene símbolos UTF-8 (como π) no válidos en documentos que no son UTF8.

  • funcionó para mí, por alguna razón, la versión más larga no lo hizo. Gracias

    -Nitsan Baleli

    13 de marzo de 2014 a las 22:09


  • ¿Puedes comentar por qué esto es necesario?

    – BBischof

    08/07/2014 a las 19:28

  • BBischof: D3 contiene símbolos UTF-8 (como π) no válidos en documentos que no son UTF8

    – Laurent Jegou

    11 de agosto de 2014 a las 6:07

  • Esto no ayuda si el usuario tiene su Ver->Configuración de codificación desactivada de Detección automática en Chrome. Ejecutarlo a través de uglify con la opción –ascii-only es más confiable.

    – Nathan Bubna

    26 de septiembre de 2014 a las 0:15

  • Necesita usar UTF8 porque D3 tiene algún carácter como π (Pi): github.com/mbostock/d3/issues/1195

    – Nicolaï Van Lennepkade

    04/12/2015 a las 15:50

Eso suena como un problema con la codificación. yo recomiendo El mínimo absoluto que todo desarrollador de software debe conocer absoluta y positivamente sobre Unicode y conjuntos de caracteres (¡sin excusas!). A pesar del título algo condescendiente, contiene información muy útil. Específicamente, parece que su servidor está sirviendo al d3.v3.js archivo con la codificación incorrecta.

Añadir ‘charset=”utf-8″‘

<script src="https://stackoverflow.com/d3.v3.js" charset="utf-8"></script>

  • Por tonto que sea, esto no ayuda si el usuario tiene su Ver-> Configuración de codificación desactivada de Detección automática en Chrome. Ejecutarlo a través de uglify con la opción –ascii-only es más confiable.

    – Nathan Bubna

    26 de septiembre de 2014 a las 0:16

avatar de usuario
nathan bubna

Intenté configurar el conjunto de caracteres en el documento y en la etiqueta del script, pero a Chrome no parece importarle. No estoy seguro si estoy haciendo algo mal.

Encontré el éxito ejecutándolo a través de uglify con la opción –ascii-only primero.

ACTUALIZACIÓN: Resulta que mi Ver->Configuración de codificación en Chrome no estaba en Detección automática, sino en codificación occidental. No estoy seguro de por qué, pero cambiar eso resolvió el problema. Es ridículo que esa configuración supere una propiedad de juego de caracteres directamente en la etiqueta del script. Teniendo en cuenta que los usuarios pueden estar en la misma situación y no ser capaces de resolverlo, seguiré usando uglify para asegurar el éxito.

Compruebe si tiene un signo más entre todas sus concatenaciones de cadenas; si no lo tiene, se generará este error.

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad