D3.js:“未捕获的SyntaxError:意外的令牌非法”?
我刚刚从d3js.org (链接到zip文件) 下载了D3.js,解压缩了它,并在以下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版本,但我更喜欢在本地提供文件。
尝试在HTML主机文档上指定UTF-8字符集:
<meta http-equiv="content-type" content="text/html; charset=UTF8">
这听起来像是编码问题。 我build议绝对最小每个软件开发人员绝对,积极必须知道Unicode和字符集(没有借口!) 。 尽pipe标题有些屈尊,但它包含了一些非常有用的信息。 具体来说,这听起来像你的服务器正在为错误的编码d3.v3.js
文件。
添加'charset =“utf-8”'
<script src="/d3.v3.js" charset="utf-8"></script>
我尝试在文档和脚本标记中设置字符集,但Chrome似乎并不在意。 不知道如果我做错了什么。
我通过首先使用–ascii-only选项运行uglify来获得成功。
更新:原来我在Chrome中的查看 – >编码设置不是在自动检测,但一些西方编码。 不知道为什么,但改变,解决了这个问题。 可笑的是,这种设置将胜过脚本标签上的字符集属性。 考虑到用户可能处于相同的状况,无法弄清楚,我仍然会使用uglify来确保成功。
检查所有string连接之间是否有加号,如果不这样会产生错误。