简单客户端应用程序中的文件处理
File handling in simple client-side app
需要有关在Javascript应用程序中处理简单文件下载(.ics)的选项的建议。
假设s.icsMsg是一个格式良好的文本/日历字符串,则以下内容在Chrome中有效:
var downloadLink = document.createElement("a");
downloadLink.href = 'data:text/calendar;charset=utf-8,' + s.icsMsg;
downloadLink.download = "Calendar.ics";
document.body.appendChild(downloadLink);
downloadLink.click();
document.body.removeChild(downloadLink);
文件已下载,命名正确,并打开到邮件客户端。在IE 9+中,我得到了一个数据区域大小错误。
有没有一种方法可以在IE中实现这一点,纯粹在客户端上实现?我知道我可以通过在http头中设置内容处理来实现这一点,但由于文件是在客户端生成的,所以需要两个额外的跳跃来将其向上推、保存,然后用正确的头将其发送回(如果这样做有效的话)。
任何建议都很好。。。
找到了一个解决方案。在IE10/11中运行良好,我只是没有显示触发该函数的链接。我想大多数用户都会使用移动设备,所以旧的IE不会成为问题。
将对非IE浏览器使用window.open(),但找不到如何设置文件名。虽然还没有分阶段,但一切都在起作用。
if (!s.isIE) {
var downloadLink = document.createElement("a");
downloadLink.href = 'data:text/calendar;charset=utf-8,'r'n' + escape(s.icsMsg);
downloadLink.download = "Calendar.ics";
document.body.appendChild(downloadLink);
downloadLink.click();
document.body.removeChild(downloadLink);
}
else {
var blob = new Blob([s.icsMsg]);
window.navigator.msSaveOrOpenBlob(blob, 'Calendar.ics');
}
相关文章:
- Webpack/Rect:遵循egghead.io教程,但出现错误:您可能需要一个合适的加载程序来处理此文件类型
- 通过命令行/批处理文件打开页面时,将javascript代码注入Google Chrome
- 导入jQuery脚本获胜'我不处理html文件
- 生成pdf或其他非html文件时的错误处理
- 处理一个JSON文件;完全相同的副本不是
- 如何使用Node.js在JavaScript模块文件之间使用事件处理程序
- Grunt-将多个文件最小化/处理为一个文件
- 我如何处理文件上传
- 无需刷新即可进行简单的客户端文件处理
- Javascript 文件处理
- 浏览器和大量的图像文件处理
- 简单客户端应用程序中的文件处理
- Casper JS数据到CSV文件处理逗号
- 可以上传表单提交等待文件处理完成
- JavaScript中的文件处理
- 如何使用javascript打开特定的文件夹,任何可能使用这里的文件处理程序
- 如何在blueimp上使用自己的文件处理程序jQuery文件上传
- 如何在nodejs中存储两个文件处理程序
- nodejs最安全的路径和文件处理
- 文件处理 - 在 javascript 中比较文本文件中的内容