D3.js:“Uncaught SyntaxError:Unexpected token ILLEGAL”?

时间:2013-03-06 00:57:26

标签: javascript d3.js

我只是downloaded D3.js from 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 and e symbols at the start of the file。 Errrr ......我能做些什么呢?我正在使用python的SimpleHTTPServer服务该文件。

更新:是的我知道我可以链接到CDN版本,但我更愿意在本地提供该文件。

5 个答案:

答案 0 :(得分:132)

尝试在HTML主机文档上指定UTF-8字符集:

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

D3在非UTF8文档中包含UTF-8符号(如π)invalids。

答案 1 :(得分:9)

这听起来像编码问题。我推荐The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)。尽管有一些居高临下的标题,但它包含一些非常有用的信息。具体来说,听起来您的服务器正在使用错误的编码提供d3.v3.js文件。

答案 2 :(得分:6)

添加'charset =“utf-8”'

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

答案 3 :(得分:5)

我尝试在doc和script标签中设置charset,但Chrome似乎并不关心。不确定我是否做错了。

我确实通过首先使用--ascii-only选项通过uglify运行它来找到成功。

更新:原来我的视图 - &gt; Chrome中的编码设置不是自动检测,而是一些西方编码。不知道为什么,但改变解决了这个问题。荒谬的是,该设置将胜过脚本标签上的charset属性。考虑到用户可能处于相同的情况而无法弄明白,我仍然会使用uglify来确保成功。

答案 4 :(得分:0)

检查所有字符串连接之间是否有加号,如果不是,则会生成此错误。