Javascript 如何获得svg图像元素的自然宽度和高度?

Javascript 如何获得svg图像元素的自然宽度和高度?,javascript,svg,d3.js,Javascript,Svg,D3.js,我试着做一些相对简单的事情。我试图在D3中实现以下功能: 以SVG元素的自然宽度和高度绘制图像 可以点击这张图片用D3画圆圈 我一直在研究如何将图像绘制为SVG元素。到目前为止,我已经: content.append("image") .attr("xlink:href",this.store.image_url); 但是如何获得该元素的自然宽度/高度呢?您可以使用一点javascript来实现这一点 var img = new Image(); img.onload = func

我试着做一些相对简单的事情。我试图在D3中实现以下功能:

  • 以SVG元素的自然宽度和高度绘制图像
  • 可以点击这张图片用D3画圆圈
我一直在研究如何将图像绘制为SVG元素。到目前为止,我已经:

content.append("image")
    .attr("xlink:href",this.store.image_url);

但是如何获得该元素的自然宽度/高度呢?

您可以使用一点javascript来实现这一点

var img = new Image();
img.onload = function(){

        img.naturalWidth and img.naturalHeight can be read off within here

};
img.src = this.store.image_url;

哦,太好了。现在,如何在svg元素中使用此图像数据而不加载两次图像?如果可以,浏览器很可能会缓存它。如果没有,问一个新问题,详细说明你尝试了什么。有点像同一个问题。您的解决方案创建了一个DOM图像元素,并读取其宽度和高度-但如何将其与svg自然集成?通过setAttribute?你真的需要另一个问题,因为你现在问的问题真的不清楚。