admin管理员组

文章数量:1196989

I'm using FileSaver library ( .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.

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.

Share Improve this question edited Feb 3, 2020 at 12:49 RBT 25.9k23 gold badges175 silver badges257 bronze badges asked Sep 1, 2016 at 8:47 rtrujillorrtrujillor 1,1821 gold badge13 silver badges24 bronze badges 4
  • 1 have you tried blob instead of file? don't think it should do any difference... – Endless Commented Sep 2, 2016 at 22:31
  • Did you refer to this issue#92? – Endless Commented Sep 2, 2016 at 22:33
  • Yes, exactly that one – rtrujillor Commented Sep 5, 2016 at 11:31
  • Related post - IE11 JavaScript (Error: SCRIPT445) “Object doesn't support this action” – RBT Commented Feb 6, 2020 at 8:26
Add a comment  | 

2 Answers 2

Reset to default 15

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.

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);

本文标签: javascriptSaving file on IE11 with FileSaverStack Overflow