From 415bedec7d098435d3393eba2fe69e0c96f3dbf3 Mon Sep 17 00:00:00 2001 From: Alexey Pyltsyn Date: Thu, 18 Mar 2021 21:44:39 +0300 Subject: Unify translation of "слушатель" (#207) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Unify translation of "слушатель" * Fixes after review --- .../api/eventtarget/addeventlistener/index.html | 58 +++++++++++----------- 1 file changed, 29 insertions(+), 29 deletions(-) (limited to 'files/ru/web/api/eventtarget') diff --git a/files/ru/web/api/eventtarget/addeventlistener/index.html b/files/ru/web/api/eventtarget/addeventlistener/index.html index 7d5f4d84ba..dfd29c7aa9 100644 --- a/files/ru/web/api/eventtarget/addeventlistener/index.html +++ b/files/ru/web/api/eventtarget/addeventlistener/index.html @@ -27,7 +27,7 @@ target.addEventListener(type, listener[, useCapture
type
-
Чувствительная к регистру строка, представляющая тип прослушиваемого события.
+
Чувствительная к регистру строка, представляющая тип обрабатываемого события.
listener
Объект, который принимает уведомление, когда событие указанного типа произошло. Это должен быть объект, реализующий интерфейс {{domxref("EventListener")}} или просто функция JavaScript.
@@ -36,20 +36,20 @@ target
.addEventListener(type, listener[, useCaptureoptions {{optional_inline}}
Объект options, который определяет характеристики объекта, прослушивающего событие. Доступны следующие варианты:
    -
  • capture:  {{jsxref("Boolean")}} указывает, что события этого типа будут отправлены зарегистрированному слушателю listener перед отправкой на EventTarget, расположенный ниже в дереве DOM.
  • -
  • once: {{jsxref("Boolean")}} указывает, что слушатель должен быть вызван не более одного раза после добавления. Если true, слушатель автоматически удаляется при вызове.
  • -
  • passive:  {{jsxref("Boolean")}} указывает, что слушатель никогда не вызовет preventDefault(). Если все же вызов будет произведен, браузер должен игнорировать его и генерировать консольное предупреждение. Пример {{anch("Улучшение производительности прокрутки с помощью passive true")}}
  • -
  • {{non-standard_inline}} mozSystemGroup: {{jsxref("Boolean")}} указывает, что слушатель должен быть добавлен в системную группу. Доступно только в коде, запущенном в XBL или в расширении Chrome.
  • +
  • capture:  {{jsxref("Boolean")}} указывает, что события этого типа будут отправлены зарегистрированному обработчику listener перед отправкой на EventTarget, расположенный ниже в дереве DOM.
  • +
  • once: {{jsxref("Boolean")}} указывает, что обработчик должен быть вызван не более одного раза после добавления. Если true, обработчик автоматически удаляется при вызове.
  • +
  • passive:  {{jsxref("Boolean")}} указывает, что обработчик никогда не вызовет preventDefault(). Если все же вызов будет произведен, браузер должен игнорировать его и генерировать консольное предупреждение. Пример {{anch("Улучшение производительности прокрутки с помощью passive true")}}
  • +
  • {{non-standard_inline}} mozSystemGroup: {{jsxref("Boolean")}} указывает, что обработчик должен быть добавлен в системную группу. Доступно только в коде, запущенном в XBL или в расширении Chrome.
useCapture {{optional_inline}}
-
Если равно true, useCapture указывает, что пользователь желает начать захват. После инициализации захвата все события указанного типа будут отправлены в зарегистрированный listener перед отправкой в какой-либо EventTarget под ним в дереве DOM. События, восходящие вверх по дереву, не будут вызывать слушателей, которым назначено использовать захват. Смотрите DOM Level 3 Events для более детального объяснения. Значение useCapture по умолчанию равно false. -
Note: Для прослушивателей событий прикреплённых к цели события, событие  находиться в целевой фазе, а не в фазах захвата или всплытия. События в целевой фазе инициируют все прослушиватели на элементе в том порядке, в котором они были зарегистрированы независимо от параметра useCapture.
+
Если равно true, useCapture указывает, что пользователь желает начать захват. После инициализации захвата все события указанного типа будут отправлены в зарегистрированный listener перед отправкой в какой-либо EventTarget под ним в дереве DOM. События, восходящие вверх по дереву, не будут вызывать обработчиков, которым назначено использовать захват. Смотрите DOM Level 3 Events для более детального объяснения. Значение useCapture по умолчанию равно false. +
Note: Для обработчиков событий прикреплённых к цели события, событие  находиться в целевой фазе, а не в фазах захвата или всплытия. События в целевой фазе инициируют все обработчики на элементе в том порядке, в котором они были зарегистрированы независимо от параметра useCapture.
Note: useCapture не всегда был опциональным. Лучше указывать данный параметр для повышения совместимости.
wantsUntrusted {{Non-standard_inline}}
-
Если равно true, слушатель будет получать сгенерированные события, посланные со страницы (по умолчанию равно false для chrome и true для обычных веб-страниц). Этот параметр доступен только в Gecko и в основном полезен для использования в дополнениях и самом браузере. Смотрите Взаимодействие между привилегированными и непривилегированными страницами для примеров использования.
+
Если равно true, обработчик будет получать сгенерированные события, посланные со страницы (по умолчанию равно false для chrome и true для обычных веб-страниц). Этот параметр доступен только в Gecko и в основном полезен для использования в дополнениях и самом браузере. Смотрите Взаимодействие между привилегированными и непривилегированными страницами для примеров использования.

Прежде чем использовать определенное значение в объекте options, рекомендуется убедиться, что браузер пользователя поддерживает его, поскольку это дополнение, которое не все браузеры поддерживали исторически.

@@ -60,9 +60,9 @@ target
.addEventListener(type, listener[, useCaptureПримечания по использованию -

Обратный вызов прослушивателя событий

+

Обратный вызов обработчика событий

-

Прослушиватель событий может быть задан либо как функция обратного вызова, либо как объект реализующий {{domxref("EventListener")}}, чей {{domxref("EventListener.handleEvent", "handleEvent()")}} метод служит как функция обратного вызова.

+

Обработчик событий может быть задан либо как функция обратного вызова, либо как объект реализующий {{domxref("EventListener")}}, чей {{domxref("EventListener.handleEvent", "handleEvent()")}} метод служит как функция обратного вызова.

Сама функция обратного вызова имеет те же параметры и возвращаемое значение что и метод handleEvent(); То есть обратный вызов принимает единственный параметр: объект основанный на {{domxref("Event")}} описывая событие, которое произошло и ничего не возвращая.

@@ -78,7 +78,7 @@ target
.addEventListener(type, listener[, useCaptureБезопасная проверка поддержки option -

В более старых версиях спецификации DOM третьим параметром addEventListener было логическое значение, указывающее, следует ли захватывать событие на этапе погружения. Со временем стало ясно, что необходимо больше вариантов. Вместо добавления дополнительных параметров в функцию (усложняя ситуацию при использовании необязательных значений) третий параметр был изменен на объект, который может содержать различные свойства, определяющие значения параметров для настройки слушателя событий.

+

В более старых версиях спецификации DOM третьим параметром addEventListener было логическое значение, указывающее, следует ли захватывать событие на этапе погружения. Со временем стало ясно, что необходимо больше вариантов. Вместо добавления дополнительных параметров в функцию (усложняя ситуацию при использовании необязательных значений) третий параметр был изменен на объект, который может содержать различные свойства, определяющие значения параметров для настройки обработчика событий.

Поскольку старые браузеры (а также некоторые не слишком старые браузеры) по-прежнему предполагают, что третий параметр является логическим, возникает необходимость создания своего кода, чтобы разумно обрабатывать этот сценарий. Вы можете сделать это, используя функцию обнаружения для каждого из интересующих вас параметров.

@@ -100,12 +100,12 @@ try {

Для проверки поддержки использования какой-либо опции можно просто добавить геттер для нее, используя код, подобный тому, что показан выше.

-

Если вы хотите добавить прослушиватель событий, использующий параметры, о которых идет речь, вы можете сделать это подобным образом:

+

Если вы хотите добавить обработчик событий, использующий параметры, о которых идет речь, вы можете сделать это подобным образом:

someElement.addEventListener("mouseup", handleMouseUp, passiveSupported
                                ? { passive: true } : false);
-

Здесь мы добавляем слушателя для события {{event ("mouseup")}} элемента someElement. Для третьего параметра, если passiveSupported имеет значение true, мы указываем объект options с passive: true; в противном случае мы знаем, что нам нужно передать логическое значение, и мы передаем false как значение параметра useCapture.

+

Здесь мы добавляем обработчик события {{event ("mouseup")}} элемента someElement. Для третьего параметра, если passiveSupported имеет значение true, мы указываем объект options с passive: true; в противном случае мы знаем, что нам нужно передать логическое значение, и мы передаем false как значение параметра useCapture.

Вы можете использовать стороннюю библиотеку, такую как Modernizr или Detect It, чтобы проверить поддержку необходимого свойства.

@@ -113,7 +113,7 @@ try {

Примеры

-

Добавление простого слушателя

+

Добавление простого обработчика

Эти примеры демонстрируют как использовать addEventListener() для наблюдения за щелчками мышкой по элементу.

@@ -137,18 +137,18 @@ function modifyText() { } } -// Добавляет слушателя событий для таблицы +// Добавляет обработчика событий для таблицы var el = document.getElementById("outside"); el.addEventListener("click", modifyText, false); -

В примере выше, modifyText() регистрирует слушателя для события click, используя addEventListener(). Клик в любом месте таблицы будет поднимать обработчик и запускать modifyText().

+

В примере выше, modifyText() регистрирует обработчика для события click, используя addEventListener(). Клик в любом месте таблицы будет поднимать обработчик и запускать modifyText().

Результат

{{EmbedLiveSample('Add_a_simple_listener')}}

-

Если вам нужно передать параметры в слушателя, вы можете использовать анонимные функции.

+

Если вам нужно передать параметры в обработчик, вы можете использовать анонимные функции.

Слушатель события с анонимной функцией

@@ -167,7 +167,7 @@ function modifyText(new_text) {   t2.firstChild.nodeValue = new_text; } -// Функция, добавляющая слушатель к таблице +// Функция, добавляющая обработчик к таблице el = document.getElementById("outside"); el.addEventListener("click", function(){modifyText("четыре")}, false); @@ -219,13 +219,13 @@ el.addEventListener("click", () => { modifyText("four"); }, false);

Ниже описан другой, более старый способ регистрации обработчиков.

-

Добавление слушателя во время обработки события

+

Добавление обработчика во время обработки события

Если EventListener добавлен к EventTarget во время обработки события, он не будет вызван текущими действиями, но может быть вызван на более поздней стадии обработки события, при восходящей обработке.

-

Несколько одинаковых слушателей события

+

Несколько одинаковых обработчиков события

-

Если зарегистрировано несколько одинаковых EventListener на одном EventTarget с одинаковыми параметрами, дублирующиеся слушатели игнорируются. Так как одинаковые слушатели игнорируются, не требуется удалять их вручную с помощью метода removeEventListener.

+

Если зарегистрировано несколько одинаковых EventListener на одном EventTarget с одинаковыми параметрами, дублирующиеся обработчики игнорируются. Так как одинаковые обработчики игнорируются, не требуется удалять их вручную с помощью метода removeEventListener.

Значение this в обработчике

@@ -239,7 +239,7 @@ el.addEventListener("click", () => { modifyText("four"); }, false);

Значение переменной this внутри modifyText() при вызове событием клика будет равно ссылке на глобальный (window) объект (или undefined при использовании strict mode)

-
Note: В JavaScript 1.8.5 введён метод Function.prototype.bind() , который позволяет указать значение, которое должно быть использовано для всех вызовов данной функции. Он позволяет вам легко обходить ситуации, в которых не ясно, чему будет равно this, в зависимости от того, в каком контексте будет вызвана ваша функция. заметьте, также, что Вам будет необходимо иметь внешнюю ссылку на слушатель, чтобы Вы могли удалить его позже.
+
Note: В JavaScript 1.8.5 введён метод Function.prototype.bind() , который позволяет указать значение, которое должно быть использовано для всех вызовов данной функции. Он позволяет вам легко обходить ситуации, в которых не ясно, чему будет равно this, в зависимости от того, в каком контексте будет вызвана ваша функция. заметьте, также, что Вам будет необходимо иметь внешнюю ссылку на обработчик, чтобы Вы могли удалить его позже.

Пример с использованием bind и без него:

@@ -256,7 +256,7 @@ el.addEventListener("click", () => { modifyText("four"); }, false); } -

Проблема в примере выше заключается в том, что Вы не можете удалить слушатель, вызванный с bind. Другое решение использует специальную функцию handleEvent, чтобы перехватывать любые события:

+

Проблема в примере выше заключается в том, что Вы не можете удалить обработчик, вызванный с bind. Другое решение использует специальную функцию handleEvent, чтобы перехватывать любые события:

var Something = function(element) {
   this.name = 'Something Good';
@@ -272,11 +272,11 @@ el.addEventListener("click", () => { modifyText("four"); }, false);
} }; - // В этом случае слушатели хранятся в this, а не в this.handleEvent + // В этом случае обработчики хранятся в this, а не в this.handleEvent element.addEventListener('click', this, false); element.addEventListener('dblclick', this, false); - // Вы можете напрямую удалять слушатели + // Вы можете напрямую удалять обработчики element.removeEventListener('click', this, false); element.removeEventListener('dblclick', this, false); } @@ -378,7 +378,7 @@ el.addEventListener("click", () => { modifyText("four"); }, false);

Старый способ регистрации обработчиков событий

-

addEventListener() был добавлен в спецификации DOM 2 Events. До этого слушатели добавлялись следующим образом:

+

addEventListener() был добавлен в спецификации DOM 2 Events. До этого обработчики добавлялись следующим образом:

// Передача ссылки на функцию — не добавляйте '()' после него, это вызовет функцию!
 el.onclick = modifyText;
@@ -391,7 +391,7 @@ element.onclick = function() {
 
 

Этот метод заменяет текущие слушатели события click, если они есть. Тоже самое для других событий и ассоциируемых с ними  обработчиков, таких как blur (onblur), keypress (onkeypress), и так далее.

-

Так как это по существу было частью DOM 0, этот метод имеет широкую поддержку и не требует специального кросс-браузерного кода; следовательно, это обычно используется, чтобы добавлять слушатели динамически, если не требуются расширенные возможности addEventListener().

+

Так как это по существу было частью DOM 0, этот метод имеет широкую поддержку и не требует специального кросс-браузерного кода; следовательно, это обычно используется, чтобы добавлять обработчики динамически, если не требуются расширенные возможности addEventListener().

Вопросы памяти

@@ -418,7 +418,7 @@ for(i=0 ; i<els.length ; i++){

Улучшение производительности прокрутки с помощью passive: true

-

Значение по умолчанию для параметра passive - false. Начиная с Chrome 56 (desktop, Chrome for Android, Android webview) значение по умолчанию для {{event("touchstart")}} и {{event("touchmove")}} равно true, а вызовы preventDefault() не разрешены. Чтобы отменить это поведение, необходимо установить параметр passive в false (см. пример ниже). Это изменение не позволяет слушателю блокировать показ страницы во время прокрутки пользователя. Демонстрация доступна на сайте разработчиков Google. Обратите внимание, что Edge вообще не поддерживает options, и добавление его без проверки поддержки помешает использовать аргумент useCapture.

+

Значение по умолчанию для параметра passive - false. Начиная с Chrome 56 (desktop, Chrome for Android, Android webview) значение по умолчанию для {{event("touchstart")}} и {{event("touchmove")}} равно true, а вызовы preventDefault() не разрешены. Чтобы отменить это поведение, необходимо установить параметр passive в false (см. пример ниже). Это изменение не позволяет обработчику блокировать показ страницы во время прокрутки пользователя. Демонстрация доступна на сайте разработчиков Google. Обратите внимание, что Edge вообще не поддерживает options, и добавление его без проверки поддержки помешает использовать аргумент useCapture.

/* Feature detection */
 var passiveSupported = false;
@@ -437,7 +437,7 @@ elem.addEventListener(
     passiveSupported ? { passive: true } : false
 );
-

Установка passive не имеет значения для основного события {{event ("scroll")}}, поскольку его нельзя отменить, поэтому его слушатель в любом случае не может блокировать показ страницы.

+

Установка passive не имеет значения для основного события {{event ("scroll")}}, поскольку его нельзя отменить, поэтому его обработчик в любом случае не может блокировать показ страницы.

Совместимость

-- cgit v1.2.3-54-g00ecf