Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.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_Svg - Fatal编程技术网

Javascript 如何读取项目中包含的svg文件并将其写入?

Javascript 如何读取项目中包含的svg文件并将其写入?,javascript,svg,Javascript,Svg,我有一个示例svg文件(我们称之为“myImage.svg”)作为代码: 我已经读了很多关于StackOverflow的问题,但是我不知道从哪里开始获取我的文件。你可以使用XMLHttpRequest(),DOMParser(),String.prototype.indexOf(),String.prototype.slice(),元素,下载属性在元素,encodeURIComponent() var-request=new-XMLHttpRequest(); 打开(“GET”,“myImage

我有一个示例svg文件(我们称之为“myImage.svg”)作为代码:


我已经读了很多关于StackOverflow的问题,但是我不知道从哪里开始获取我的文件。

你可以使用
XMLHttpRequest()
DOMParser()
String.prototype.indexOf()
String.prototype.slice()
元素,
下载
属性在
元素,
encodeURIComponent()

var-request=new-XMLHttpRequest();
打开(“GET”,“myImage.svg”);
setRequestHeader(“内容类型”、“图像/svg+xml”);
addEventListener(“加载”),函数(事件){
var response=event.target.responseText;
var doc=new DOMParser();
var xml=doc.parseFromString(响应,“image/svg+xml”);
var rect=xml.getElementById(“rect3336”);
rect.setAttribute(“宽度”,1000);

var result=response.slice(0,response.indexOf(“预期结果是本地加载、更改和保存具有相同文件名的文件,还是在服务器上?@guest271314 local很好:)@ravp See也不必使用get请求在本地读/写文件。
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->

<svg>
  <g>
    <rect
       style="fill:#ff8080;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
       id="rect3336"
       width="100"
       height="10"
       x="0"
       y="412.36221" />
  </g>
</svg>
var file = getFile("myImage.svg");
var rect = file.getElement("rect");
rect.getAttribute("width") = "1000";
  var request = new XMLHttpRequest();
  request.open("GET", "myImage.svg");
  request.setRequestHeader("Content-Type", "image/svg+xml");
  request.addEventListener("load", function(event) {
    var response = event.target.responseText;
    var doc = new DOMParser();
    var xml = doc.parseFromString(response, "image/svg+xml");
    var rect = xml.getElementById("rect3336");
    rect.setAttribute("width", 1000);
    var result = response.slice(0, response.indexOf("<svg"));
    result += xml.documentElement.outerHTML;
    var a = document.createElement("a");
    a.download = "myImage.svg";
    a.href = "data:image/svg+xml," + encodeURIComponent(result);
    document.body.appendChild(a);
    a.click();
    document.body.removeChild(a);
  });
  request.send();