01.
<!DOCTYPE html>
02.
<
html
>
03.
<
head
>
04.
<
meta
content
=
"width=device-width initial-scale=1.0 minimum-scale=1.0 maximum-scale=1.0 user-scalable=no"
name
=
"viewport"
>
05.
<
meta
charset
=
"UTF-8"
>
06.
<
link
rel
=
"stylesheet"
href
=
"https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.1/css/bootstrap.css"
>
07.
<
script
src
=
"https://cdnjs.cloudflare.com/ajax/libs/FileSaver.js/1.3.8/FileSaver.min.js"
></
script
>
08.
<
script
src
=
"https://cdnjs.cloudflare.com/ajax/libs/encoding-japanese/1.0.29/encoding.min.js"
></
script
>
09.
10.
<
script
>
11.
var str2array = function(str) {
12.
13.
var array = [],i,il=str.length;
14.
for(i=0;i<
il
;i++) array.push(str.charCodeAt(i));
15.
return array;
16.
17.
};
18.
19.
function test() {
20.
21.
// テキストエリアのテキストを取得
22.
var
text
=
document
.getElementById("text").value;
23.
24.
// lf のみを crlf に変換
25.
text
text
= text.replace(/\n/g, '\r\n');
26.
27.
// 文字コード配列に変換する( 関数 )
28.
var
array
=
str2array
( text );
29.
30.
// SHIFT_JIS に変換する( ライブラリ )
31.
var
sjis_array
=
Encoding
.convert(array, "SJIS", "UNICODE");
32.
33.
// JavaScript API で オブジェクトを作成
34.
var
sjis_data
=
new
Uint8Array(sjis_array);
35.
36.
// 保存用ファイル名
37.
filename
=
"保存用テキスト.txt"
;
38.
39.
// 保存処理( saveAs はライブラリ、Blob は JavaScript API )
40.
saveAs(
41.
new Blob(
42.
[sjis_data]
43.
, {type: "text/plain;
charset
=
shift_jis
"}
44.
)
45.
, filename
46.
);
47.
48.
}
49.
</script>
50.
51.
</
head
>
52.
<
body
>
53.
<
h1
>ファイルの書き込み</
h1
>
54.
55.
<
input
type
=
"button"
id
=
"btn"
value
=
"保存"
onclick
=
"test()"
>
56.
<
div
>
57.
<
textarea
id
=
"text"
style
=
'width:90%;height:400px;'
></
textarea
>
58.
</
div
>
59.
60.
</
body
>
61.
</
html
>