0

D3.js で独自のツリーを作成しようとしていますが、作成方法がわかりません。私は次のリンクを見てきました:

http://bl.ocks.org/1249394#interactive_tree.css
d3js ツリースクエア

そして、それらをコピーして、いじくり回すことができるように何かを機能させようとしましたが、うまくいきません。私はアラートでコードをいじりました.血統と折りたたみ可能なツリーの両方で、コードは d3.json 呼び出しの直後に動作を停止します. json ファイルもコピーし、同じになるように名前を変更しました。血統例では

d3.json("info.json", function(json) {
  alert(json);
  var nodes = tree.nodes(json); 
  alert('hi');

したがって、ここでは最初のアラートは機能し、2 番目のアラートは機能しません。これは両方の例で発生します。誰かが理由を知っている場合は、説明または修正をいただければ幸いです。ありがとう!!!

d3.json("localhost...", callback) が呼び出されると、null が返されることがわかりました。別の投稿で、クロスドメイン制限があることを読みました。それが何を意味するのか、それを修正する方法がよくわかりません

アプリケーションを実行しているのと同じディレクトリからローカルで試し、Xamp サーバーから試しました。それでもアラート(json)が呼び出されると、nullが表示されます。

4

1 に答える 1

1

d3のドキュメントには、これに関する詳細情報があります。基本的に、ブラウザは、元のページが存在しないローカル ファイル システムまたはサーバーから JSON ファイルをロードしません。これを回避する方法があります。たとえば、Google Chrome を起動し--disable-web-securityてこれらの制限を無効にすることができますが、これはお勧めできません。

最近のすべてのブラウザーには、JSON ファイルが読み込まれない正確な理由を表示する Javascript エラー コンソールがあります。ローカル Web サーバーを介してページを提供する場合localhost://は、JSON ファイルのパスを指定したり類似したものを指定したりしないでください。HTML ファイルが存在するディレクトリからの相対パスのみを指定してください。

于 2012-07-06T07:54:00.490 に答える