Vous pouvez éviter un aller-retour vers le serveur.
Encodez votre SVG xml en base64.
Créez ensuite un lien vers ces données. L'utilisateur peut faire un clic droit dessus pour l'enregistrer localement.
// This example was created using Protovis & jQuery
// Base64 provided by http://www.webtoolkit.info/javascript-base64.html
// Modern web browsers have a builtin function to this as well 'btoa'
function encode_as_img_and_link(){
// Add some critical information
$("svg").attr({ version: '1.1' , xmlns:"http://www.w3.org/2000/svg"});
var svg = $("#chart-canvas").html();
var b64 = Base64.encode(svg); // or use btoa if supported
// Works in recent Webkit(Chrome)
$("body").append($("<img src='data:image/svg+xml;base64,\n"+b64+"' alt='file.svg'/>"));
// Works in Firefox 3.6 and Webit and possibly any browser which supports the data-uri
$("body").append($("<a href-lang='image/svg+xml' href='data:image/svg+xml;base64,\n"+b64+"' title='file.svg'>Download</a>"));
}
La balise img fonctionne dans Webkit, le lien fonctionne dans Webkit & Firefox, et peut fonctionner dans n'importe quel navigateur qui supporte data-uri
0 votes
J'ai répondu à une question similaire de manière plus détaillée ici : stackoverflow.com/questions/8379923/
0 votes
J'ai enfin une implémentation qui fonctionne : iscriptdesign.com . Choisissez l'exportation svg. Vérifié pour les derniers Firefox et chrome
0 votes
Il existe des extensions de navigateur qui permettent de télécharger des fichiers SVG. Certaines d'entre elles conservent également les informations de style.