javascript实现客户端兼容各浏览器创建csv并下载的
本文将介绍如何使用JavaScript在客户端兼容各种浏览器创建CSV文件并下载的方法。以下是一个具体的实例,展示了如何使用JavaScript操作CSV文件。
当用户在界面上点击“radarDLBut”按钮时,会触发以下操作:
从`displayData["radar_chart"]`中获取需要的数据,这些数据包括标签(`r_label`)和默认值(`r_default`)。然后,创建一个CSV内容的字符串,包括标题行和数据行。如果浏览器是IE浏览器,则需要特殊处理CSV内容的编码。
接下来,遍历数据数组,将每个信息数组转化为CSV格式的数据字符串,并用逗号分隔每个元素。如果当前索引小于数据长度,则在每行数据后添加一个换行符。
对于IE浏览器,由于它不支持直接下载操作,因此需要使用Blob对象来保存CSV内容,并调用`navigator.msSaveBlob`方法将内容保存为文件。而其他浏览器则可以直接使用超链接的方式实现下载。将CSV内容编码为URI格式,并创建一个下载链接元素。设置链接的href属性为CSV内容的URI,并将download属性设置为文件名。将链接元素添加到页面中,模拟点击事件,实现下载功能。
整个过程的具体代码如下所示:
```javascript
$("radarDLBut").click(function(){
var data = [displayData["radar_chart"]["r_label"], displayData["radar_chart"]["r_default"]];
var csvContent = "data:text/csv;charset=utf-8,\ufeff";
if (window.navigator.msSaveOrOpenBlob) {
csvContent = "\ufeff"; // For IE browser
}
data.forEach(function(infoArray, index){
var dataString = infoArray.join(",");
csvContent += index < data.length ? dataString + "" : dataString;
});
if (window.navigator.msSaveOrOpenBlob) {
var blob = new Blob([decodeURIComponent(encodeURI(csvContent))], {type: "text/csv;charset=utf-8;"});
navigator.msSaveBlob(blob, 'subject.csv'); // For IE browser
} else {
var encodedUri = encodeURI(csvContent);
var link = document.createElement("a"); // Create a link element
link.setAttribute("href", encodedUri); // Set the link's href attribute to the encoded CSV content
link.setAttribute("download", "subject.csv"); // Set the download attribute to specify the file name
document.body.appendChild(link); // Append the link to the body of the page
link.click(); // Trigger the click event to start the download
}
});
```
希望以上内容对大家的JavaScript程序设计有所帮助。如需更多相关知识,请访问Cambrian框架官网或查看其官方文档获取更多渲染相关信息。
编程语言
- javascript实现客户端兼容各浏览器创建csv并下载的
- php实现统计目录文件大小的函数
- 写一个对搜索引擎友好的文章SEO分页类
- JS实现的鼠标跟随代码(卡通手型点击效果)
- laravel实现上传图片的两种方式小结
- JavaScript实现的滚动公告特效【基于jQuery】
- .net core如何利用ConcurrentTest组件对方法进行压力测
- Ajax并不神秘:揭下各种Ajax控件和类库的小裤衩
- 拦截asp.net输出流并进行处理的方法
- jQuery多级手风琴菜单实例讲解
- JS延时提示框实现方法详解
- SQL SERVER 2014 安装图解教程(含SQL SERVER 2014下载)
- 使用Chrome浏览器调试AngularJS应用的方法
- MSSQL事务的存储过程
- Laravel框架基于中间件实现禁止未登录用户访问页
- JS如何设置元素样式的方法示例