77

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

ファイルの先頭にある円周率と円周率の記号は好きではありません。エラー...これについて何ができますか?私はPythonのSimpleHTTPServerでファイルを提供しています。

更新:はい、CDNバージョンにリンクできることはわかっていますが、ファイルをローカルで提供したいと思います。

4

5 に答える 5

136

HTML ホスト ドキュメントで UTF-8 文字セットを指定してみてください。

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

D3 には、UTF-8 以外のドキュメントの無効な UTF-8 シンボル (π など) が含まれています。

于 2013-03-30T09:42:32.780 に答える
9

それはエンコーディングの問題のように聞こえます。すべてのソフトウェア開発者が絶対に、積極的に Unicode と文字セットについて知っておく必要がある絶対最小値 (言い訳はありません!)をお勧めします。やや下品なタイトルですが、非常に有益な情報が含まれています。具体的には、サーバーがd3.v3.js間違ったエンコーディングでファイルを提供しているようです。

于 2013-03-06T01:03:30.563 に答える
6

「charset="utf-8"」を追加

<script src="/d3.v3.js" charset="utf-8"></script>
于 2014-08-24T04:53:34.440 に答える
5

ドキュメントとスクリプトタグ自体に文字セットを設定しようとしましたが、Chrome は気にしないようです。私が何か間違ったことをしているかどうかはわかりません。

最初に --ascii-only オプションを付けて uglify を実行することで成功しました。

更新: Chrome の View->Encoding 設定が Auto-Detect ではなく、一部の Western エンコーディングであることがわかりました。理由はわかりませんが、それを変更すると問題が解決しました。その設定が script タグの charset プロパティよりも優先されるのはばかげています。ユーザーが同じ状況にあり、それを理解できない可能性があることを考慮して、私は引き続き uglify を使用して成功を保証します。

于 2014-09-25T20:20:53.887 に答える
0

すべての文字列連結の間にプラス記号があるかどうかを確認してください。そうでない場合、このエラーが生成されます。

于 2015-08-01T03:24:42.660 に答える