我只是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版本,但我更愿意在本地提供该文件。
答案 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)
检查所有字符串连接之间是否有加号,如果不是,则会生成此错误。