Skip to content

Commit

Permalink
add IE11 polyfill to support URI download scheme
Browse files Browse the repository at this point in the history
  • Loading branch information
HiroyasuNishiyama committed Feb 11, 2021
1 parent f5da2eb commit 3740c21
Showing 1 changed file with 26 additions and 0 deletions.
26 changes: 26 additions & 0 deletions packages/node_modules/@node-red/editor-client/src/js/polyfills.js
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
}
});
}
}
})();

0 comments on commit 3740c21

Please sign in to comment.