繁体   English   中英

未捕获的SyntaxError:意外的令牌=

[英]Uncaught SyntaxError: Unexpected token =

我刚刚使用缩小版d3.v3的本地副本切换到开发版本。 它在使用缩小版本时工作正常,但使用我的本地副本http://d3js.org/d3.v3.js给出了标题中的错误,引用了这一行:

var € = Math.PI, µ = 1e-6, d3_radians = € / 180, d3_degrees = 180 / €;

当我包含托管文件时,它工作正常。

问题是您使用ISO-8859-1字符编码(通常是浏览器默认值)为D3服务,而D3必须使用UTF-8编码。 通常会发生这种情况,因为您在加载HTML页面的顶部缺少元标记:

<!DOCTYPE html>
<meta charset="utf-8">

元指定的字符集是必需的,因为d3js.orgGitHub Pages提供 ,并且未在Content-Type响应头中指定字符集。 因此,从加载HTML文档推断出字符集。

如果您愿意,可以在脚本标记上指定charset属性。 确保在测试之前清除浏览器缓存,因为缓存副本将保留最初访问时的字符编码:

<script src="http://d3js.org/d3.v3.js" charset="utf-8"></script> 

缩小版本不会发生错误,因为变量名称将替换为ASCII等效项。 (我不记得格式字符串中的UTF-8字符同样被转义序列替换,但我仍然建议在所有情况下将D3作为UTF-8服务。)

如果您通过在浏览器中查看源代码然后使用复制粘贴来下载D3,也会发生编码问题,这就是我建议下载d3.v3.zip的原因

它绝对是一个编码问题,试着关注它。

用Chrome打开您发布的链接( http://d3js.org/d3.v3.js ),我也看到了双字节字符:

 var π = Math.PI, ε = 1e-6, d3_radians = π / 180, d3_degrees = 180 / π;

如果你几乎没有保存文件“保存页面为...”,你用Sublime Text( http://www.sublimetext.com/ )这样的编辑器打开它,它工作正常,它显示:

var π = Math.PI, ε = 1e-6, d3_radians = π / 180, d3_degrees = 180 / π;

我试图将这个下载的文件与我的项目一起使用,这没问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM