zoukankan      html  css  js  c++  java
  • javascript实现客户端兼容各浏览器 导出文件




    javascript实现客户端兼容各浏览器创建csv并下载的方法


      1 $("#radarDLBut").click(function(){
      2 var data = [displayData["radar_chart"]["r_label"],displayData["radar_chart"]["r_default"]];
      3 var csvContent = "data:text/csv;charset=utf-8,ufeff";
      4 if (window.navigator.msSaveOrOpenBlob) {
      5   csvContent = "ufeff";
      6 }
      7 data.forEach(function(infoArray, index){
      8   dataString = infoArray.join(",");
      9   csvContent += index < data.length ? dataString+ "
    " : dataString;
     10 });
     11 if (window.navigator.msSaveOrOpenBlob) {
     12   // if browser is IE
     13   var blob = new Blob([decodeURIComponent(encodeURI(csvContent))],{
     14  type: "text/csv;charset=utf-8;"
     15   });
     16   navigator.msSaveBlob(blob, 'subject.csv');
     17 }else{
     18   var encodedUri = encodeURI(csvContent);
     19   var link = document.createElement("a");
     20   link.setAttribute("href", encodedUri);
     21   link.setAttribute("download", "subject.csv");
     22   document.body.appendChild(link);
     23   link.click();
     24 }
     25 });




    js实现保存Txt文件到本地-兼容各浏览器

    先上代码:支持IE8+,Edge,Firefox,Chrome。

      1 <!DOCTYPE html>
      2 <html lang="en">
      3 
      4 <head>
      5    <meta charset="UTF-8">
      6    <title>Save Test</title>
      7   <script>
      8 	function save(filename,data){
      9 		var ua = window.navigator.userAgent.toLowerCase();
     10 		//alert(ua);
     11 		var version = (ua.match( /.+(?:rv|it|ra|ie)[/: ]([d.]+)/ ) || [])[1];
     12 
     13 		if(ua.indexOf("edge") > -1 || (ua.indexOf("msie") == -1 && version =='11.0') || (ua.indexOf("msie") > -1 && version == '10.0' )) {
     14 			window.navigator.msSaveOrOpenBlob(new Blob([ data ]), filename);
     15 			return;
     16 		}
     17 	   // for IE9-
     18 	   if(ua.indexOf("msie") > -1 && (version == '9.0' || version == '8.0')){
     19 			var frame = document.createElement("iframe");
     20 			if (frame) {
     21 				document.body.appendChild(frame);
     22 				frame.setAttribute("style", "display:none");
     23 				frame.contentWindow.document.open("txt/html", "replace");
     24 
     25 				frame.contentWindow.document.write(data);
     26 				frame.contentWindow.document.close();
     27 				frame.focus();
     28 				frame.contentWindow.document.execCommand("SaveAs", true,
     29 						filename);
     30 				document.body.removeChild(frame);
     31 			}
     32 		}else if(ua.indexOf('firefox')>-1 || ua.indexOf('chrome')>-1){
     33 			var blob = new Blob([data]);
     34 			var link = document.getElementsByTagName('a')[0];
     35 			link.download = filename;
     36 			var url = URL.createObjectURL(blob);
     37 			link.href = url;
     38 			//URL.revokeObjectURL(url);
     39 		}
     40 	}
     41 
     42 
     43     window.onload = function(){
     44 		var data = 'hello world!';
     45 		save('file.txt',data);
     46 	}
     47   </script>
     48 </head>
     49 
     50 <body>
     51   <a>Save</a>
     52 </body>
     53 
     54 </html>
     55 








    为人:谦逊、激情、博学、审问、慎思、明辨、 笃行
    学问:纸上得来终觉浅,绝知此事要躬行
    为事:工欲善其事,必先利其器。
    态度:道阻且长,行则将至;行而不辍,未来可期
    转载请标注出处!
  • 相关阅读:
    Linux-安装FFmpeg
    博客园添加视频
    博客园添加音乐
    通过容器提交镜像(docker commit)以及推送镜像(docker push)笔记
    根据不同配置.env获取不同的配置文件的配置
    1M大概多少个字
    计算机存储单位
    DNS原理及其解析过程
    查看到百度经过了多少个网关
    C语言的本质(18)——函数的可变参数
  • 原文地址:https://www.cnblogs.com/ios9/p/14859437.html
Copyright © 2011-2022 走看看