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 








为人:谦逊、激情、博学、审问、慎思、明辨、 笃行
学问:纸上得来终觉浅,绝知此事要躬行
为事:工欲善其事,必先利其器。
态度:道阻且长,行则将至;行而不辍,未来可期
转载请标注出处!
原文地址:https://www.cnblogs.com/ios9/p/14859437.html