问题
I'm using FileSaver library ( https://github.com/eligrey/FileSaver.js) and does not work on IE11, with other browsers I had no problem.
The code is this:
var file = new File(["content"], "sample.xml", { type: "application/xml;charset=utf-8" });
saveAs(file);
I'm getting this error when the first instruction (new) executes:
"the object does not accept this action"
There's an open issue on git hub, but actually with no solution, I'm looking for a workaround that should work on IE11, like this:
try {
var file = new File([msg.d], "test.xml", { type: "application/xml;charset=utf-8" });
saveAs(file);
} catch (err) {
// Code that works on IE11 ....
}
Any help should be appreciated.
Regards
回答1:
http://caniuse.com/#search=file [2] Some browser don't support the File constructor.
The only way you can get a File instance is through input[type=file]
instead of wrapping it around a try/catch why not just do this:
var blob = new Blob(['content'], { type: 'application/xml' });
saveAs(blob, fileName);
回答2:
I have found a workaround that works on IE11.
This is the code:
try {
var file = new File(['content'], fileName, { type: 'application/xml;charset=utf-8' });
saveAs(file);
} catch (err) {
var textFileAsBlob = new Blob(['content'], { type: 'application/xml' });
window.navigator.msSaveBlob(textFileAsBlob, fileName);
}
I hope this will help somebody, working with IE11 consumes time for little thing like this.
来源:https://stackoverflow.com/questions/39266801/saving-file-on-ie11-with-filesaver