Télécharger la toile à l'image dans IE en utilisant Javascript

Le code ci-dessous convertira la toile sur l'image et la même chose est téléchargée dans les navigateurs autres que IE (j'utilise IE9). Le code .IE ouvre leDataURL dans un nouvel onglet. Mais ce n'est pas téléchargeable.

if(navigator.appName == "Microsoft Internet Explorer") { somehtml1= document.createElement("img"); somehtml1.id="imgid";somehtml1.name="imgname"; somehtml1.src=canvas.toDataURL("image/png"); document.body.appendChild(somehtml1); window.win = open (somehtml1.src); setTimeout('win.document.execCommand("SaveAs")', 500); } else { somehtml= document.createElement("a"); somehtml.href = canvas.toDataURL("image/png"); somehtml.download = "test.png"; } 

Voici ce que j'utilise – je ne sais pas quelle version d'IE cela nécessite car j'utilise 11. Il utilise un blob pour IE et canvas en tant que dataURL pour d'autres navigateurs. Testé sur Chrome et IE 11.

(Le lien est l'objet canvas, le lien est un objet hypertexte)

  if (canvas.msToBlob) { //for IE var blob = canvas.msToBlob(); window.navigator.msSaveBlob(blob, 'dicomimage.png'); } else { //other browsers link.href = canvas.toDataURL(); link.download = "dicomimage.png"; } 

Rapide et facile pour les utilisateurs: ouvrez simplement un nouvel onglet affichant le lien.toDataURL.

Les utilisateurs connaissent aujourd'hui comment cliquer avec le bouton droit de la souris et les enregistrer.

En essayant de pousser le bouton enregistrer-comme pour eux, il suffit de créer un autre point d'échec potentiel dans votre logiciel. [C'est mes 2 centimes].

Exemple de code:

  $("#save").click(function(){ var html="<p>Right-click on image below and Save-Picture-As</p>"; html+="<img src='"+canvas.toDataURL()+"' alt='from canvas'/>"; var tab=window.open(); tab.document.write(html); }); 

[Solution supplémentaire]

Vous pouvez utiliser la bibliothèque FileSaver.js pour permettre à l'utilisateur de sauvegarder le canevas dans son lecteur local.

https://github.com/eligrey/FileSaver.js