Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从上传的文件中获取svg元素的宽度_Javascript_Jquery_Html_Svg - Fatal编程技术网

Javascript 从上传的文件中获取svg元素的宽度

Javascript 从上传的文件中获取svg元素的宽度,javascript,jquery,html,svg,Javascript,Jquery,Html,Svg,我选择了一个svg文件并通过readDataUrl()读取它,通过将src设置为从文件读取的值,我可以将它设置为html图像元素。但是,宽度和高度属性将为0。如何将从文件读取的值设置为svg元素,以便能够执行getBBox().width以获取其宽度?您可以使用XMLHttpRequest(或您最喜欢的AJAX库)读取和解析svg文件。我想,如果您愿意,您甚至可以将dataurl传递给它。编辑,因为我误读了这个问题: 如果您可以将svg附加到文档中,并且需要使用FileReader,请使用其方

我选择了一个svg文件并通过
readDataUrl()
读取它,通过将
src
设置为从文件读取的值,我可以将它设置为html
图像元素。但是,宽度和高度属性将为0。如何将从文件读取的值设置为
svg元素
,以便能够执行
getBBox()
.width以获取其宽度?

您可以使用XMLHttpRequest(或您最喜欢的AJAX库)读取和解析svg文件。我想,如果您愿意,您甚至可以将dataurl传递给它。

编辑,因为我误读了这个问题:

  • 如果您可以将svg附加到文档中,并且需要使用FileReader,请使用其方法,然后将其插入html元素中
函数预览文件(){
var file=document.querySelector('input[type=file]')。files[0];
var reader=new FileReader();
reader.onloadend=函数(){
var parent=document.getElementById('container');
parent.innerHTML=reader.result;
}
if(file&&file.type==“image/svg+xml”){
reader.readAsText(文件);
}否则{
警报(“文件类型错误或未提供文件”);
}
}