D3.js 如何捕捉D3中的xlink:href错误?

D3.js 如何捕捉D3中的xlink:href错误?,d3.js,error-handling,D3.js,Error Handling,我试图以PNG的形式可视化文件。解析字符串后;它将匹配字符串与相应的png和渲染。但是,我没有所有可能的png,因此如果在我的assets/64pxBlue/目录中不存在,我需要返回一个默认png 在我的开发工具中,有一个GET错误。如何捕获该错误,并在出现错误时返回file.png?D3没有任何支持,但您可以使用简单的js执行此操作,如下所示: d3.selectAll(“img”)[0]。forEach(函数(i,n){ i、 onload=imageFound;//出错时调用此函数 i、

我试图以PNG的形式可视化文件。解析字符串后;它将匹配字符串与相应的png和渲染。但是,我没有所有可能的png,因此如果在我的assets/64pxBlue/目录中不存在,我需要返回一个默认png


在我的开发工具中,有一个GET错误。如何捕获该错误,并在出现错误时返回file.png?

D3没有任何支持,但您可以使用简单的js执行此操作,如下所示:

d3.selectAll(“img”)[0]。forEach(函数(i,n){
i、 onload=imageFound;//出错时调用此函数
i、 onerror=imageNotFound;//成功调用此函数
如果(n==0)
i、 src=”http://www.w3schools.com/html/pic_mountain.jpg";
其他的
i、 src=”http://www.w3schools.com/html/blah-blah.jpg“;//设置错误的url
})
函数imageFound(){
log(“找到并加载了该映像”);
}
函数imageNotFound(me){
//如果找不到图像,请设置默认url
me.target.src=”http://www.w3schools.com/tags/smiley.gif";
console.log(“defaut图像”)
}

D3没有任何支持此功能的功能,但您可以使用简单的js来实现,如下所示:

d3.selectAll(“img”)[0]。forEach(函数(i,n){
i、 onload=imageFound;//出错时调用此函数
i、 onerror=imageNotFound;//成功调用此函数
如果(n==0)
i、 src=”http://www.w3schools.com/html/pic_mountain.jpg";
其他的
i、 src=”http://www.w3schools.com/html/blah-blah.jpg“;//设置错误的url
})
函数imageFound(){
log(“找到并加载了该映像”);
}
函数imageNotFound(me){
//如果找不到图像,请设置默认url
me.target.src=”http://www.w3schools.com/tags/smiley.gif";
console.log(“defaut图像”)
}

transition.select("image")
    .attr("xlink:href", function(d) {
      //fix icon error if icon does not exist in folder
      return 'assets/64pxBlue/file.png';
      // return d.icon
    })
    .attr("x", function(d) {return d.position_x ? d.position_x : '0px'})
    .attr("y", function(d) {return d.position_y ? d.position_y : '-10px'})
    .attr("width", function(d) {return d.value ? d.value : '20px'})
    .attr("height", function(d) {return d.value ? d.value : '20px'})
}