Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Определить resize (https://javascript.ru/forum/events/74027-opredelit-resize.html)

scars 06.06.2018 14:51

Определить resize
 
Подкиньте идею, как определить, кто инициирует событие resize - пользователь или скрипт.
На странице встроен iframe youtube, при развороте видео на полный экран соответствующей кнопкой отрабатывает событие resize, при этом event isTrusted возвращает true (казалось бы это решение, оказывается нет).

В настоящий момент проверку осуществляю по соответствию iframe width == window width, но это решение не нравится. Не хочется привязываться к объекту iframe для запуска проверки, т.к. изначально его нет в DOM, он генерируется при нажатии на ссылку. К тому же объектов динамически может быть несколько на странице.

Есть какие-нибудь интересные идеи?

Nexus 06.06.2018 14:52

Цитата:

Сообщение от scars
казалось бы это решение, оказывается нет

Почему?

scars 06.06.2018 14:55

Потому что isTrusted возвращает true, а не false. Он говорит что resize совершает пользователь, а не скрипт, не знаю почему.

Nexus 06.06.2018 15:04

scars, если используете jquery, то она событию добавляет свойство "isTrigger".

scars 06.06.2018 15:12

jquery не использую.
проверил на resize не отдает isTrigger

ruslan_mart 06.06.2018 15:33

Попробуйте такое решение.

if(document.fullscreenElement || document.webkitFullscreenElement) {
   
}

scars 06.06.2018 15:52

Цитата:

Сообщение от ruslan_mart (Сообщение 486788)
Попробуйте такое решение.

if(document.fullscreenElement || document.webkitFullscreenElement) {
   
}

да, я как раз сейчас такое решение рассматриваю, правильное использование:

document.addEventListener('webkitfullscreenchange' , ()=>{});
document.addEventListener('mozfullscreenchange', ()=>{});
document.addEventListener('fullscreenchange', ()=>{});

только на айфоне это событие не отрабатывает, на андроиде не проверял

ruslan_mart 06.06.2018 15:55

scars, ну тут как бы да, не надёжно. Тут ещё вопрос в том, какое событие отработает раньше. Если сначала отработает resize и только потом отработает fullscreen, то тут уже тупик.

scars 06.06.2018 17:10

блин, ужасно непонятные поведения вызывает этот youtube fullscreen.

сначала отрабатывает resize
затем fullscreenchange
затем повторно resize

без костылей не обойтись похоже

ruslan_mart 06.06.2018 20:24

scars, почитайте API по youtube, может там есть какие-то обработчики.


Часовой пояс GMT +3, время: 13:59.