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');

所以这里第一个警报有效而第二个无效,这在两个示例中都发生了。如果有人知道原因,将不胜感激解释或修复。谢谢!!!

我发现当 d3.json("localhost...", callback) 被调用时,它返回 null。我在另一篇文章中读到有跨域限制。我不太确定这意味着什么或如何解决它

我已经在本地运行我的应用程序时从同一个目录本地尝试过它,并且我已经从我的 Xamp 服务器尝试过它。并且当调用 alert(json) 时,它仍然显示为 null。

4

1 回答 1

1

d3 文档对此有更多信息。基本上,您的浏览器不会从本地文件系统或原始页面不在的服务器上加载 JSON 文件。有一些方法可以解决这个问题,例如可以启动 Google Chrome--disable-web-security来禁用这些限制,但不建议这样做。

所有现代浏览器都有一个 Javascript 错误控制台,它将向您显示 JSON 文件未加载的确切原因。请记住,当您通过本地 Web 服务器提供页面时,您不应localhost://在 JSON 文件的路径中指定或类似的路径,而应仅指定相对于 HTML 文件所在目录的路径。

于 2012-07-06T07:54:00.490 回答