我使用的是FileSaver库(https://github.com/eligrey/FileSaver.js)并且无法在IE11上运行,其他浏览器我没有遇到任何问题。
代码是这样的:
var file = new File(["content"], "sample.xml", { type: "application/xml;charset=utf-8" });
saveAs(file);
我在执行第一条指令(新)时遇到此错误:
"对象不接受此操作"
git hub上存在一个未解决的问题,但实际上没有解决方案,我正在寻找适用于IE11的解决方法,如下所示:
try {
var file = new File([msg.d], "test.xml", { type: "application/xml;charset=utf-8" });
saveAs(file);
} catch (err) {
// Code that works on IE11 ....
}
任何帮助都应该受到赞赏。
此致
答案 0 :(得分:9)
我找到了适用于IE11的解决方法。
这是代码:
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);
}
我希望这会对某人有所帮助,与IE11合作会耗费时间来处理这样的小事。
答案 1 :(得分:9)
http://caniuse.com/#search=file [2]有些浏览器不支持File构造函数。
获取File实例的唯一方法是input[type=file]
而不是将它包裹在try / catch周围,为什么不这样做:
var blob = new Blob(['content'], { type: 'application/xml' });
saveAs(blob, fileName);