add IE11 polyfill to support URI download scheme

This commit is contained in:
Hiroyasu Nishiyama 2021-02-11 17:56:08 +09:00
parent f5da2eb633
commit 3740c21bee
1 changed files with 26 additions and 0 deletions

View File

@ -53,5 +53,31 @@
Set.prototype.constructor = Set;
}
if (window.navigator.msSaveBlob) {
// IE does not support data uri scheme for downloading data
window.addEventListener("click", function (ev) {
var tgt = ev.target;
if ((tgt.tagName === "A") &&
tgt.hasAttribute("download") &&
tgt.hasAttribute("href")) {
// partial support of data uri downloading
var filename = tgt.getAttribute("download");
var dataUri = tgt.getAttribute("href");
var match = /^data:([^,]+),(.*)/.exec(dataUri);
if (match) {
ev.preventDefault();
var enc = match[1];
var data = decodeURIComponent(match[2]);
var blob = new Blob([data], {
type: enc,
});
navigator.msSaveBlob(blob, filename);
}
else {
console.log("download not supported:", tgt);
}
}
});
}
}
})();