function update_map(event) { event.preventDefault(); var lat = document.getElementById('lat').value; var lon = document.getElementById('lon').value; request_url = new URL("/render/map.svg", document.URL); request_url.searchParams.append("lat", lat); request_url.searchParams.append("lon", lon); var request = new XMLHttpRequest(); request.open("GET", request_url); request.addEventListener('load', function(event) { if (request.status >= 200 && request.status < 300) { var svgblob = new Blob([request.responseText], { type: "image/svg+xml" }); document.getElementById("svgcontainer").innerHTML = request.responseText; link_container = document.getElementById("downloadlink"); link_container.innerHTML = ''; var blobUrl = URL.createObjectURL(svgblob); var link = document.createElement("a"); // Or maybe get it from the current document link.href = blobUrl; link.download = "map.svg"; link.innerHTML = "Download this map."; link_container.appendChild(link); // Or append it whereever you want URL.revokeObjectURL(blobUrl); } else { console.warn(request.statusText, request.responseText); } }); request.send(); }