3

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

ЗАЧЕМ?

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

Есть ли способ сказать IE, что он может разрешить всплывающие окна со страницы без обновления?

1 ответ1

7

TL; DR: поскольку веб-страницы на самом деле являются приложениями, и открытие всплывающего окна, когда его открытие не ожидается, может привести к неопределенному состоянию.


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

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

  1. Ничего такого. Возможно, ничего плохого не произойдет, но вы не можете быть уверены.
  2. Сценарии могут сломаться, что делает приложение непригодным для использования до тех пор, пока вы не обновите веб-страницу, а иногда даже до тех пор, пока вы не удалите свои файлы cookie.
  3. Может произойти что-то неожиданное, возможно, возникнет недостаток безопасности.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .