Всплывающие окна JavaScript в Chrome обрабатывают изменения

Google реализовано недавнее изменение в поведении обработки всплывающих окон JavaScript в Chrome, которое ограничивает всплывающие окна JavaScript.

Это изменение, которое уже появилось в Chrome Canary и Dev, улучшает обработку диалоговых окон alert (), confirm () и prompt (), которые страницы могут вызывать в браузере.

Chrome до сих пор, и это все еще верно для Chrome Stable и Beta, обрабатывал эти диалоговые окна JavaScript для каждого окна браузера.

Это означает, что всплывающие окна могут блокировать браузер до тех пор, пока пользователи не отреагируют на рассматриваемое всплывающее окно. Хотя это может быть полезно в определенных ситуациях, это часто означало, что сайты использовали эти параметры для блокировки браузера и принуждения пользователей к взаимодействию со всплывающим окном.

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

Всплывающие окна JavaScript в Chrome обрабатывают изменения

оповещение Google

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

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

Компания Примечания на официальном конструкторском документе:

Если вкладка является первой вкладкой, то мы представляем диалог для вкладки. Затем будут отображаться диалоговые окна с предупреждениями / подтверждениями / запросами, которые будут ориентированы на взаимодействие с пользователем. Если пользователь взаимодействует с ними и выполняет взаимодействие с пользователем, для которого они предназначены, то ничего примечательного не произойдет.

Однако, если бы пользователь переключился на другую вкладку, переместив вкладку на задний план и сделав ее не первой, мы бы закрыли диалог. Для диалоговых окон с предупреждениями JavaScript не ждет ответа, поэтому мы вернемся к JavaScript. Для диалоговых окон подтверждения и запроса мы вернем false и null соответственно, указывая на отмену. (Обратите внимание, что это те же значения, которые мы в настоящее время возвращаем для диалогов, которые подавлены параметром «Запретить этой странице создавать дополнительные диалоговые окна».)

Для всех остальных вкладок мы нейтрализуем большинство диалогов. Для диалоговых окон предупреждений мы бы добавили их в очередь для этой вкладки и показывали бы очередь диалогов в следующий раз, когда вкладка будет на переднем плане, но мы немедленно разрешили бы возобновить выполнение JavaScript этой вкладки. Для диалоговых окон подтверждения и запроса мы немедленно вернем false / null, чтобы предотвратить блокировку JavaScript, поскольку блокирование выполнения скрипта приведет к поломке произвольных вкладок, вполне возможно, той, с которой взаимодействует пользователь.

Это изменение должно положить конец тому, чтобы веб-мастера использовали эти функции JavaScript для раздражения или нападения на пользователей браузера Chrome.

Google отмечает, что изменение коснется всех сайтов, использующих эти диалоговые окна JavaScript. Компания предлагает сайтам реализовать альтернативы, например, используя вместо этого API уведомлений.

Означает ли это, что Google изменит использование Calendar () для уведомлений в Календаре Google? Время покажет.

Если вы посмотрите на другие браузеры, вы заметите, что они реализовали эту функциональность много лет назад. И в Firefox, и в Opera эта опция реализована годами.

Сейчас читать : Расширение Popup Blocker для Google Chrome