单击d3.js中包含URL的节点时无法打开弹出窗口

时间:2015-03-02 18:43:42

标签: javascript d3.js

在我的一个项目中,我正在使用D3.js制作树。一些子节点链接到各个地方。我正在尝试在用户点击具有URL的节点时打开一个弹出窗口。我正在尝试的代码部分是:

e.append("svg:a").attr("target", "E2B").attr("xlink:href", function(a) {
  return a.url;
}).append("text").attr("x", function(a) {
  return a.children || a._children ? -10 : 10;
}).attr("dy", ".35em").attr("text-anchor", function(a) {
  return a.children || a._children ? "end" : "start";
}).text(function(a) {
  return a.name;
}).style("fill-opacity", 1E-6)
  .on("click",window.open(d.url,'','width=600,height=300'));

使用上面的代码,当我在浏览器中加载项目时,我会在加载时收到一个新的空白弹出窗口。此外,当我单击其中一个包含URL的子节点时,将打开相同的空白弹出窗口。有人可以告诉我我的代码有什么问题吗?

如果您需要,这是我的整个HTML代码 - http://pastebin.com/tLZfmEg9

1 个答案:

答案 0 :(得分:1)

这是我解决了自己的工作代码。用这个替换问题中给出的代码。

e.append("svg:a").attr("target", "E2B").on("click", function(a){
if( a.url == null){} else {
  window.open(a.url,'',"width=800,height=600")}
}).append("text").attr("x", function(a) {
  return a.children || a._children ? -10 : 10;
}).attr("dy", ".35em").attr("text-anchor", function(a) {
  return a.children || a._children ? "end" : "start";
}).text(function(a) {
  return a.name;
}).style("fill-opacity", 1E-6);