--- title: Worker.onmessage slug: Web/API/Worker/onmessage translation_of: Web/API/Worker/onmessage ---
{{APIRef("Web Workers API")}}
Свойство onmessage интерфейса {{domxref("Worker")}} представляет собой обработчик {{domxref("EventHandler")}}, который будет вызван когда произойдет событие {{event("message")}}. Тип этого события {{domxref("MessageEvent")}} и оно будет вызвано когда worker-объект получит сообщение из выполняемого им кода (т.е из метода {{domxref("DedicatedWorkerGlobalScope.postMessage")}} .
Примечание: Данные события доступны в свойстве data события {{event("message")}}.
myWorker.onmessage = function(e) { ... }
Следующий пример кода показывает создание объекта {{domxref("Worker")}} используя конструктор {{domxref("Worker.Worker", "Worker()")}}. События попадают в объект, когда значение внутри поля ввода формы first изменяется. Обработчик onmessage указан для обработки сообщений, которые приходят назад из кода объекта в текущий контекст выполнения.
var myWorker = new Worker("worker.js");
first.onchange = function() {
myWorker.postMessage([first.value,second.value]);
console.log('Сообщение, отправленное в worker-объект');
}
myWorker.onmessage = function(e) {
result.textContent = e.data;
console.log('Сообщение полученное из worker-объекта');
}
В скрипте worker.js, обработчик onmessage используется для обработки событий, полученных из главного скрипта:
onmessage = function(e) {
console.log('Сообщение полученное из главного скрипта');
var workerResult = 'Результат: ' + (e.data[0] * e.data[1]);
console.log('Отправка сообщения назад в главный скрипт');
postMessage(workerResult);
}
Посмотрите как в скрипте worker.js вызывается обработчик onmessage. В нем присутствует только глобальное свойство onmessage, потому что worker-объект фактически является областью видимости ({{domxref("DedicatedWorkerGlobalScope")}}).
Для полного примера смотрите наш Basic dedicated worker example (run dedicated worker).
| Спецификация | Статус | Комментарий |
|---|---|---|
| {{SpecName('HTML WHATWG', "#handler-worker-onmessage", "Worker.onmessage")}} | {{Spec2('HTML WHATWG')}} | Никаких изменений из {{SpecName("Web Workers")}}. |
| {{SpecName('Web Workers', "#handler-worker-onmessage", "Worker.onmessage")}} | {{Spec2('Web Workers')}} | Начальное определение. |
| Функциональность | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
|---|---|---|---|---|---|
| Базовая поддержка | 4 | 3.5 | 10.0 | 10.6 | 4 |
| Функциональность | Android | Firefox Mobile (Gecko) | Firefox OS (Gecko) | IE Phone | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|---|
| Базовая поддержка | 4.4 | 3.5 | 1.0.1 | 10.0 | 11.5 | 5.1 |
Интерфейс {{domxref("Worker")}}, которому принадлежит этот обработчик.