回答編集履歴

1

sample

2018/03/08 02:54

投稿

yambejp
yambejp

スコア114883

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