From 33058f2b292b3a581333bdfb21b8f671898c5060 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:40:17 -0500 Subject: initial commit --- .../web/api/filereader/progress_event/index.html | 174 +++++++++++++++++++++ 1 file changed, 174 insertions(+) create mode 100644 files/ja/web/api/filereader/progress_event/index.html (limited to 'files/ja/web/api/filereader/progress_event') diff --git a/files/ja/web/api/filereader/progress_event/index.html b/files/ja/web/api/filereader/progress_event/index.html new file mode 100644 index 0000000000..b628614784 --- /dev/null +++ b/files/ja/web/api/filereader/progress_event/index.html @@ -0,0 +1,174 @@ +--- +title: 'FileReader: progress イベント' +slug: Web/API/FileReader/progress_event +tags: + - API + - Event + - FileReader + - ProgressEvent + - Reference + - Web + - progress + - イベント +translation_of: Web/API/FileReader/progress_event +--- +
{{APIRef}}
+ +

progress イベントは、 FileReader がデータを読むときに定期的に発生します。

+ + + + + + + + + + + + + + + + + + + + +
バブリングなし
キャンセル可能いいえ
インターフェイス{{domxref("ProgressEvent")}}
イベントハンドラープロパティ{{domxref("FileReader.onprogress")}}
+ +

+ +

ライブデモ

+ +

HTML

+ +
<div class="example">
+
+    <div class="file-select">
+        <label for="avatar">Choose a profile picture:</label>
+        <input type="file"
+               id="avatar" name="avatar"
+               accept="image/png, image/jpeg">
+    </div>
+
+    <img src="" class="preview" height="200" alt="Image preview...">
+
+    <div class="event-log">
+        <label>Event log:</label>
+        <textarea readonly class="event-log-contents"></textarea>
+    </div>
+
+  </div>
+ + + +

JS

+ +
const fileInput = document.querySelector('input[type="file"]');
+const preview = document.querySelector('img.preview');
+const eventLog = document.querySelector('.event-log-contents');
+const reader = new FileReader();
+
+function handleEvent(event) {
+    eventLog.textContent = eventLog.textContent + `${event.type}: ${event.loaded} bytes transferred\n`;
+
+    if (event.type === "load") {
+        preview.src = reader.result;
+    }
+}
+
+function addListeners(reader) {
+    reader.addEventListener('loadstart', handleEvent);
+    reader.addEventListener('load', handleEvent);
+    reader.addEventListener('loadend', handleEvent);
+    reader.addEventListener('progress', handleEvent);
+    reader.addEventListener('error', handleEvent);
+    reader.addEventListener('abort', handleEvent);
+}
+
+function handleSelected(e) {
+    eventLog.textContent = '';
+    const selectedFile = fileInput.files[0];
+    if (selectedFile) {
+        addListeners(reader);
+        reader.readAsDataURL(selectedFile);
+    }
+}
+
+fileInput.addEventListener('change', handleSelected);
+
+ +

結果

+ +

{{ EmbedLiveSample('Live_example', '100%', '300px') }}

+ +

仕様書

+ + + + + + + + + + + + + + +
仕様書状態
{{SpecName('File API', '#dfn-progress-event')}}{{Spec2('File API')}}
+ +

ブラウザーの対応

+ + + +

{{Compat("api.FileReader.progress_event")}}

+ +

関連情報

+ + -- cgit v1.2.3-54-g00ecf