loadstart event is fired when a file read operation has begun.

冒泡 No
可取消 No
接口 ProgressEvent
事件处理程序特性 FileReader.onloadstart

范例

实时范例

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>
					

CSS

img.preview {
  margin: 1rem 0;
}
.event-log-contents {
  width: 18rem;
  height: 5rem;
  border: 1px solid black;
  margin: .2rem;
  padding: .2rem;
}
.example {
  display: grid;
  grid-template-areas:
              "select  log"
              "preview log";
}
.file-select {
  grid-area: select;
}
.preview {
  grid-area: preview;
}
.event-log {
  grid-area: log;
}
.event-log>label {
  display: block;
}
.event-log-contents {
  resize: none;
}
					

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);
					

结果

规范

规范 状态
文件 API 工作草案

浏览器兼容性

The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request. 更新 GitHub 上的兼容性数据
桌面 移动
Chrome Edge Firefox Internet Explorer Opera Safari Android webview Chrome for Android Firefox for Android Opera for Android Safari on iOS Samsung Internet
loadstart event Chrome Yes Edge 12 Firefox 79
79
不支持 ? — 79
loadstart event dispatches synchronously (should be asynchronously as per spec).
IE Yes Opera Yes Safari Yes WebView Android Yes Chrome Android Yes Firefox Android Yes Opera Android Yes Safari iOS Yes Samsung Internet Android Yes

图例

完整支持

完整支持

见实现注意事项。

另请参阅

元数据

  • 最后修改: