Разработчики web-браузера Chrome рассматривают возможность (https://developers.google.com/web/updates/2017/03/dialogs-po...) по ограничению диалогов, реализуемых средствами JavaScript и перекрывающих контент. По мнению разработчиков, в основной массе подобные диалоги применяются для навязывания каких-то действий и вызывают значительное недовольство среди посетителей.Помимо раздражающих, но безвредных и одобренных владельцами ресурсов, всплывающих диалогов, в которых предлагается пройти различные опросы, обратиться к online-консультанту, подписаться на канал в социальной сети или подтвердить закрытие страницы, последнее время участились случаи использования данных диалогов для мошенничества или совершения вредоносных действий. Например, через рекламные сети или взлом сайтов продвигаются блоки, предлагающие обновить браузер чтобы продолжить просмотр страницы или установить поддельный антивирус под предлогом обнаружения в системе вируса, а также симулирующие (https://blog.malwarebytes.com/threat-analysis/2016/02/tech-s.../) возникновение системной ошибки и предлагающие позвонить по указанному номеру телефона.
Рассматривается несколько путей блокирования назойливых всплывающих диалогов, с сохранением возможности их применения по назначению. Вместо блоков, перекрывающих содержимое и останавливающих дальнейшую работу со страницей/браузером, для вывода уведомлений предлагается использовать Notifications API (не блокирующие работу уведомления) и HTML-тег dialog (организация ввода), а для отладочных целей console.log(document.origin).
На первом этапе предлагается изменить реализацию функций alert(), confirm() и prompt(), сделав их немодальными (не блокирующими страницу) и по аналогии с тем, как это реализовано в браузере Safari, обеспечить их автоматическое закрытие при переключении на другую вкладку. Также рассматривается возможность отключения показа диалогов alert(), confirm(), prompt() и onbeforeunload, если пользователь просто просматривает страницу, не взаимодействуя с ней.Дополнительно можно отметить выпуск (https://chromereleases.googleblog.com/2017/03/stable-channel...) обновления Chrome 57.0.2987.133, в котором устранена порция уязвимостей. Четыре проблемы помечены как опасные, а одной присвоен статус критической уязвимости (CVE-2017-5055), позволяющей обойти все уровни защиты браузера и выполнить код в системе, за пределами sandbox-окружения. Уязвимость присутствует в коде организации вывода на печать и вызвана обращением к области памяти после её освобождения.
URL: https://www.theregister.co.uk/2017/03/30/webapp_devs_note_go.../
Новость: http://www.opennet.me/opennews/art.shtml?num=46282
> сделав их немодальнымиДавно, блин, пора!
А сохранение так и останется модельным: ни выделить текст на странице, ни прокрутить?Кстати, на хромиуме у меня можно открыть дважды диалог сохранения, быстро быстро нажимая на crtl+s если, например, проблема с разрешием DNS. И тогда один диалог куда-то улетает, и блокирует интерфейс, приходится закрывать весь браузер.
Полагаю, с этим будут бороться в первую очередь
IMO, модальные окна в принципе зло, везде. Даже если нужно непременное вмешательство пользователя, то основное окно можно хотя бы оставить на read-only, скопировать ввод, справку вызвать, да что угодно.
А тебя не беспокоит, что по документации окно модальное, а браузер показывает его как немодальное?Тебя не беспокоит, что вызванная функция не будет выполнена потому что пользователь захотел не выполнять эту функцию (не показывать больше окна)?
Это уже не программирование, дружок...
Обычное программирование. Просто тупое решение "в лоб" одной функцией, меняется на более дружественное пользователю через пару ивентов.Раньше: показал модальный диалог, если пользователь сказал "да" то что-то сдела, если "нет" то не сделал. Теперь будет: отправил event на подтверждение пользователем, позже если пришел event с подтверждением то делаешь, если не пришел/пришел с "нет" не делаешь.
> Тебя не беспокоит, что вызванная функция не будет выполнена потому что пользователь захотел не выполнять эту функциюКак пользователя меня это только радует.
> А тебя не беспокоит, что по документации окно модальное, а браузер показывает
> его как немодальное?
> Тебя не беспокоит, что вызванная функция не будет выполнена потому что пользователь
> захотел не выполнять эту функцию (не показывать больше окна)?
> Это уже не программирование, дружок...Во-первых, давайте без фамильярностей.
Во-вторых, вы плохо поняли то, что я написал. Модальное окно подразумевает, в плане взаимодействия пользователя с программой то, что я не могу сделать деструктивных изменений. Про "не показывать окно вообще" никто не говорил. Как сломает то, что я как писал выше -- буду иметь возможность выделить какое-то поле в заполненной формочке? Или действительно вызову справку? Чем это помешает программе?
В-третих, если "настоящее программирование" это прогибание пользователя под свои корявые взгляды на UI, то туда ему и дорога. На своём десктопе я модальность у окон вырезал как класс, и ничего пока не сломалось. О чём вы говорите?
Бывает пользователь хочет закрыть страницу не сохранив прогресс. Уведомление быть должно
Снова дилетантский подход. Зло, но не везде. Блокирующие окна нужны чтобы разрешить ситуацию без решения которой невозможно продолжить работу: например случилась ошибка в программе и невозможно продолжить безопасную работу, т.е. продолжение работы может привести к потере или порче данных. Например в текстовом редакторе случился сбой ввода-вывода и надо пользователя уведомить что попытка сохранения может быть неуспешной поэтому пусть он дополнительно позаботиться сам о сохранении данных, например copy-paste в другой текстовый редактор с сохранением в нем). Тру-программеры помнят такое по текстовому редактору WD под DOS.
Ну а бездари суют блокирующие окна везде и всюду. У меня в firefox нет проблем, если всплывающее окно меня бесит или блокирует не к месту - я его удаляю перманентно и больше о нем и не вспоминаю. Хотя я удаляю не только окна, а целые блоки с рекламой свистоперделками, ненужной информацией со страниц которые регулярно посещаю.
Алё иксперд. Модальное окно необходимо чтобы сохранить контекст приложения, в котором оно было вызвано и в котором альтернативы, предлагаемые модальным окном, имеют смысл.
Раньше на опеннете подобный позор было сложно встретить.
> По мнению разработчиков, в основной массе подобные диалоги применяются для навязывания каких-то действий и вызывают значительное недовольство среди посетителей.Да ладно?!
100%. Запустили в интернет всяких разрабов-гомобоев, которые загадили web. Теперь все страдают.
Больше всего бесит когда поверх страницы выводится предложение подписаться на канал в Facebook или предлагаются услуги online-консультанта, на сайтах мелких фирмочек это стало модным.
> Больше всего бесит когда поверх страницы выводится предложение подписаться на канал в Facebook или предлагаются услуги online-консультанта, на сайтах мелких фирмочек это стало модным.Этих никто трогать не будет, они не через alert() сделаны.
Удалять перманентно. Больше не всплывет.
>> услуги online-консультанта, на сайтах мелких фирмочекГолосуй ногами.
НЕ посещай сайты, которые тебя раздражают.
Кругом слишком много идиотов, чтобы это сработало.
> На первом этапе предлагается изменить реализацию функций alert(), confirm() и prompt()При чем тут они? Сколько я не встречал "всплывашек" - они все были сделаны на динамических HTML-объектах (типа дивов).
А штатные диалоги JS вообще очень трудно под что-то замаскировать.
Сто лет не прошло. Веб три-ноль близко...
Как же - зато очередной backdoor закрыли!
А то что тысячу оставили - так через тысяччу лет и их "найдут" и закроют, создав новые конечно. Может когда-нибудь, например когда JScript уже вымрет - и легализированный стандартом JScript - backdoor с сохранением в отдельном кэше браузера всех посещаемых/загружаемых в frame адресов, т.е.аналог скрытых Cookies.К слову, в Opera, уже лет 20 как все всплывашки блокировались, по кр.мере в той что <=12.xx.
А, позжие их уродства браузера(на базе движка Chrome собственно...)
- даже и не смотрел!
>На первом этапе предлагается изменить реализацию функций alert(), confirm() и prompt(), сделав их немодальнымиИ как их потом по назначению использовать?!
Никак.#if CHROME
...
#elseif SAFARI
...
#elseif MOZILA
...
#elseif IE
...
#elseif SPARTAN
...
#elsealert "смени браузер, мyдила!"
#endif
Любитель отладки alert()-ом в треде, все в Эйка!
Подозреваю, что они будут локально-модальными. Т.е. будут блокировать вкладку, но не блокировать её закрытие или переход на другие вкладки.
Давно пора. В хромой опере долго не мог отловить прикол, когда страница на клики не откликалась. Оказалось, в фоновой открытой вкладке появлялся алерт с запросом на отправку уведомлений, который блокировал все страницы.
Эй, привет тебе из 2017, в фф так уже пару лет
Потому и подозреваю, что и в Хроме так будет.
> И как их потом по назначению использовать?!Читай вывод в консол-монсол.
alert() я использую, чтобы почитать переменные :)
То есть, набрасывая простенькую веб-морду, теперь нужно будет думать, как браузер отнесется к встроенным диалогам, и не сломает ли он своими капризами логику приложения? Молодца!
А разве сейчас не надо думать?
Если это чисто внутренняя и чисто техническая морда, не предназначенная для высовывания наружу, глупо тратить лишний день на псевдоинтерфейс.
Пыхомакаки, сэр, такого не умеют.
А диванные эксперты в жизни не видели за веб-мордой ничего, кроме пыха.
Интересно, почему у тебя такая обида? Ты пыхомакак?
А ты не показывай alert() сразу при открытии страницы, например. Кто вообще так делает?
Не знаю. Я - не делаю.
Ой млё, как будто в баннерах до этого такой срани не было. Особенно на Flash...
> Особенно на FlashА что это?
Хоть что-то годное.
И вроде что-то меняют, режут, а всё те же криво-таблицы-попапы-фреймы как были, так и остались, только теперь js/css/html5/etc. Странно.
Что ж тут странного? Очевидно, что победить в этой борьбе такими методами невозможно.
Всё, з.п. яваскриптоводов начнёт падать, т.к. такую востребованную назойливость залочат сейчас и заказы на услуги упадут:)
> 1-ый абзац.А браузеры тут причём?
Меня, подозреваю и не только меня, раздражает что браузер потребляет ресурсы в несколько раз больше, чем мои игори, но что-то Google не спешит ограничивать сайты в ресурсах, а было бы куда полезней.
Firefox (SeaMonkey) + uBlock Origin + NoScript + Ghostery = резкое сокращение различного рода назойливостей.
lynx?!
Ghostery? Блокируем spyware средствами другого spyware? Это как в новости - у вас обнаружен вирус, установите наш типа-антивирус.
когда тама wayland в chrome запилят?
> Например, через рекламные сети или взлом сайтов продвигаются блоки, предлагающие обновить браузер чтобы продолжить просмотр страницы или установить поддельный антивирус под предлогом обнаружения в системе вируса, а также симулирующие возникновение системной ошибки и предлагающие позвонить по указанному номеру телефона.У них там вообще какой год-то?
как не почитаешь комменты - все сидят на свободных форках браузеров и плюются от проприетарного хрома. А сейчас овации в сторону улучшения со словами аля "наконец-то, дождался!". анон, ты уж определись, где ты
Все новости об изменениях в хроме подразумевают хромиум же.
Это давно уже надо было сделать! Раздражают эти навязчивые баннеры! И главное закрыть их нельзя было! Может хоть сейчас разработчики сделают все необходимое, чтобы можно было их (баннеры) блокировать!P.S. А вобще в хромиум есть такая фича как "Inspect" (команда, которая выводит html-код баннера), которая позволяет удалять временно ненужный баннер. Но только временно; потом после перезагрузки браузера баннер снова появится. Чтобы временно удалить баннер командой "Inspect" щелкните по баннеру правой кнопкой, справа появится столбец с выделенным тегом баннера. Нажмите DELETE и тег вместе с баннером исчезнет со страницы.
Раздражают критины, которые не знают, что в модальные диалоги нельзя вставить ничего кроме текста, который и так режется. Не знают, что ниодин вредонос не станет пользоваться этими диалогами, так как они заблокируют и его работу. А вот для диалогов, которые рисуются js есть ublock давным давно.
Как же дико бесит когда серфишь по инетрнету без мышки, нажал ctrl+w закрыть вкладку и тут тебе, а вы точно хотите? А вы уверены? Как же так мы так старались, сделоли красивоё вам веб приложоние! Самое лучшее в мире, а вы уйти хотититя?
И тебе приходиться сраную мышку в руку брать.
Смерти таким разработчикам, в муках и страданиях.
А до esc пальчики не дотягиваются?
а ты поменьше по порносайтам лазь и все будет хорошо.
разработчики не при чем, что заказали, то и сделали.
На порнухе бывает появляются грозные предупреждения, что мол вы смотрели порнуху и теперь должны занести штраф в ФСБ через шляндекс-мани. Ухахатайка! Причём чекает ай-пи. Я думал такое только с российских ай-пи такое бывает, ибо в накрытой паранджой стране живём, но как-то один раз словил подобное на англ. языке через импортный прокси.
В Firefox бороться с этим несколько проще.В about:config надо запретить сценариям javascript:
перемещать или менять размер всплывающих окон
dom.disable_window_move_resize;trueперемещать окна над или под другие
dom.disable_window_flip;trueотключать или заменять контекстное меню
dom.event.contextmenu.enabled;falseИспользовать Noscript.
Если, например, не копируется текст - вид => стиль страницы => без стиля.
Вот это полезно
не модальный alert ddos
да пусть они будут модальные, сделайте принудительно большой крестик для закрытия ЛЮБОГО всплывающего окна, который будет гарантированно закрывать его без выполнения какого-либо кода.
Не получится так. Слишком много способов, которыми можно отрисовать диалог. И каждый нужно убирать по своему. Плюс верстка может поехать в некоторых случаях.Отключать возможности отрисовки некоторых элементов так же никто не станет: слишком много пуканов будет разбомблено