質問するログイン新規登録

回答編集履歴

1

sample

2018/03/08 02:54

投稿

yambejp
yambejp

スコア118472

answer CHANGED
@@ -1,2 +1,34 @@
1
1
  base64でエンコードしてaタグのdownload属性を利用すればある程度のことはできます
2
- IE系だとindow.navigator.msSaveOrOpenBlobを利用することになると思います
2
+ IE系だとindow.navigator.msSaveOrOpenBlobを利用することになると思います
3
+
4
+ # sample
5
+
6
+ ```javascript
7
+ $(function(){
8
+ $('input[type=button][value=download]').on('click',function(){
9
+ var content="aaaa";
10
+ var filename="hoge.txt";
11
+ var type='application/octet-binary';
12
+ var blob=new Blob([content],{type:type});
13
+ if (window.navigator.msSaveBlob) {
14
+ window.navigator.msSaveOrOpenBlob(blob, filename);
15
+ return false;
16
+ }
17
+ var fr = new FileReader();
18
+ fr.onload = function(e) {
19
+ var src=e.target.result;
20
+ src=new Uint8Array(src);
21
+ src=String.fromCharCode.apply("",src);
22
+ src=btoa(src);
23
+ src="data:"+type+";base64,"+src;
24
+ var a=$('<a download="'+filename+'">').attr("href",src).text("");
25
+ a.appendTo($('body')).first().get(0).click();
26
+ a.remove();
27
+ }
28
+ fr.readAsArrayBuffer(blob);
29
+ });
30
+ });
31
+ ```
32
+ ```HTML
33
+ <input type="button" value="download">
34
+ ```