Farkında olduğum tek yol FileSaver.js tarafından kullanılan hile :
- Gizli bir
<a>
etiket oluşturun .
- Onun Set
href
Blob URL'sini niteliği.
download
Özniteliğini dosya adına ayarlayın .
<a>
Etiketi tıklayın .
İşte basitleştirilmiş bir örnek ( jsfiddle ):
var saveData = (function () {
var a = document.createElement("a");
document.body.appendChild(a);
a.style = "display: none";
return function (data, fileName) {
var json = JSON.stringify(data),
blob = new Blob([json], {type: "octet/stream"}),
url = window.URL.createObjectURL(blob);
a.href = url;
a.download = fileName;
a.click();
window.URL.revokeObjectURL(url);
};
}());
var data = { x: 42, s: "hello, world", d: new Date() },
fileName = "my-download.json";
saveData(data, fileName);
Bu örneği sadece fikri göstermek için yazdım, üretim kodunda FileSaver.js kullanın.
notlar
- Daha eski tarayıcılar, HTML5'in bir parçası olduğu için "indirme" özelliğini desteklemez.
- Bazı dosya biçimlerinin tarayıcı tarafından güvenli olmadığı kabul edilir ve indirme başarısız olur. Txt uzantılı JSON dosyalarını kaydetmek benim için çalışıyor.