【JavaScript】inputタグで指定したテキストファイルを読み込む方法
inputタグで指定したテキストファイルを読み込み、テキストエリアに反映させたかったので作成。
コード
<!--下記のタグを任意の位置に配置-->
<input id="load" type="file">
function registerLoadEvent() {
const LOAD = document.getElementById( 'load' );
if ( LOAD === null ) return;
const onLoad = function( event ) {
const TARGET = event.target;
if ( TARGET === null ) return;
if ( TARGET.files.length === 0 ) return;
const FILE_BLOB = TARGET.files[0];
const READER = new FileReader();
const onLoaded = function() {
// ↓ に読み込んだテキストが格納されるため、この中にテキストを利用した処理を記述
READER.result;
};
READER.addEventListener( 'load', onLoaded );
READER.readAsText( FILE_BLOB );
};
LOAD.addEventListener( 'change', onLoad );
}
document.addEventListener(
'DOMContentLoaded',
function() { registerLoadEvent(); }
);
説明
まず、HTMLでファイルを指定するinput
タグを任意の位置に配置する。
次に、registerLoadEvent
関数を定義し、その関数をDOMContentLoaded
イベント内で呼び出す。
これでinput
タグでファイルを指定すると、ファイルが読み込まれ、完了した時にregisterLoadEvent
関数内のonLoaded
が呼び出される。そのため、後はonLoaded
内でテキストが格納されている変数であるREADER.result
を利用した処理を記述すればよい。