, преобразует их в двоичную строку и сохраняет ее в свойстве
result
. Каждый «символ» в двоичной строке представлен кодом символа в диапазоне от 0 до 255. Извлекать эти значения байтов можно с помощью метода
String.charCodeAt.
Следует отметить, что двоичные строки являются не самым эффективным
представлением двоичных данных: вместо них следует использовать объекты
ArrayBuffer
, когда это возможно.
void readAsDataURL(Blob blob)
Асинхронно читает байты данных из объекта
blob
, преобразует их (учитывая тип объекта
Blob
) в URL-адрес data:// и присваивает полученную строку свойству
result
.
void readAsText(Blob blob, [string encoding])
Асинхронно читает байты данных из объекта
blob
, декодирует их с использованием кодировки encoding в текстовую строку Юникода и затем присваивает полученную строку свойству
result
. Если аргумент encoding не указан, используется кодировка UTF-8 (текст в кодировке UTF-16 определяется и декодируется автоматически, если он начинается с маркера Byte Order Mark).
Обработчики событий
Подобно всем асинхронным прикладным интерфейсам, в своей работе объект
FileReader
опирается на события. Для регистрации обработчиков событий можно использовать свойства, перечисленные ниже, или методы интерфейса
EventTarget
, реализуемого объектом
FileReader
.
События объекта
FileReader
возбуждаются в самом объекте
FileReader
. Они не всплывают, и для них не предусматриваются действия по умолчанию. Обработчикам событий в объекте
FileReader
всегда передается объект
ProgressEvent
. Успешная операция чтения начинается с события «loadstart», за которым следует ноль или более событий «progress», событие «load» и событие «loadend». Неудачная операция чтения начинается с события «loadstart», за которым следует ноль или более событий «progress», событие «error» или «abort» и событие «loadend».
onabort
Вызывается, если операция чтения была прервана методом
abort.
onerror
Вызывается, если возникла какая-либо ошибка. Свойство error объекта
FileReader
будет ссылаться на объект
FileError
, который имеет свойство code с кодом ошибки.
onload
Вызывается в случае успешного завершения операции чтения объекта
File
или
Blob
. Свойство
result
объекта
FileReader
хранит содержимое объекта
File
или
Blob
в виде, зависящем от использовавшегося метода чтения.
onloadend
Каждый вызов метода чтения объекта
FileReader
в конечном итоге возбуждает событие «load», «error» или «abort». Кроме того, после каждого из этих событий объект
FileReader
возбуждает событие «loadend» для программ, в которых было бы желательно обрабатывать единственное событие вместо трех.
onloadstart
Вызывается после вызова метода чтения, но перед тем как будут прочитаны какие-либо данные.
onprogress
Возбуждается примерно 20 раз в секунду, пока выполняется чтение данных из объекта
File
или
Blob
.
Объект
ProgressEvent
позволяет узнать количество прочитанных байтов, а свойство
result
объекта
FileReader
может содержать представление этих байтов.
FileReaderSync
синхронный интерфейс чтения объекта File или Blob
Объект
FileReaderSync
является синхронной версией объекта
FileReader
, доступной только в фоновых потоках выполнения, представленных объектами
Worker
. Синхронный интерфейс проще в использовании, чем асинхронный: достаточно просто создать объект вызовом конструктора
FileReaderSync
и затем вызвать один из его методов чтения, который либо вернет содержимое объекта
File
или
Blob
, либо возбудит объект
FileError
.
Конструктор
new FileReaderSync
Новый объект
FileReaderSync
создается с помощью конструктора
FileReaderSync
, который не требует аргументов.
Методы
Следующие методы возбуждают объект
FileError
, если операция чтения потерпит неудачу по каким-либо причинам.
ArrayBuffer readAsArrayBuffer(Blob blob)
Читает байты из объекта
blob
и возвращает их в виде объекта
ArrayBuffer
.
string readAsBinaryString(Blob blob)
Читает байты из объекта
blob
, преобразует их в двоичную строку (
String.fromChar-Code
) и возвращает ее.
string readAsDataURL(Blob blob)
Читает байты из объекта
blob
, преобразует их с учетом свойства
type
объекта
blob
в URL-адрес data:// и возвращает его.
string readAsText(Blob blob, [string encoding])
Читает байты данных из объекта
blob
, декодирует их с использованием кодировки
encoding
(или с использованием кодировки UTF-8 или UTF-16, если аргумент
encoding
не указан) и возвращает полученную строку.
Form
тег <form> в HTML-документе (Node, Element)
Объект
Form
представляет элемент
<form>
в HTML-документе. Свойство
elements
– это объект
HTMLCollection
, который дает удобный доступ ко всем элементам в форме. Методы
submit
и
reset
позволяют программным способом отправлять данные формы или сбрасывать все элементы формы в значения, предлагаемые по умолчанию. Каждая форма в документе представлена элементом массива
document.forms[].
Элементы формы (кнопки, поля ввода, переключатели и т. д.) собраны в объекте
Form.elements
, подобном массиву. К именованным элементам форм можно обращаться непосредственно по имени - имя элемента выступает в качестве имени свойства объекта