Skip to content

Трудноуловимые глюки в Oper'е при перезагрузке страницы из яваскрипта #11

@MihanEntalpo

Description

@MihanEntalpo

Здравствуйте. Обнаружил следующую проблему:

  1. Открываем страницу которая не влезает в экран и проматываем её вниз
  2. Внизу страницы делаем что-то, что вызывает перезагрузку страницы через window.location.reload()
  3. Страница перезагружается уже промотанная вниз экрана (Опера умная, она запоминает на каком месте мы страницу смотрели)
  4. Если после этого вызвать модал, то часто он отображается вверху страницы, так как будто страница не была прокручена в низ (то есть, если например окно браузера имеет размер 1000x700, а высота страницы 3000 пикселей, и мы промотаем её в самый низ, то вместо того чтобы появится в координатах 0x2300-1000x3000 черный прямоугольник появляется в координатах 0x0-1000x700)

Судя по всему проблема именно в опере, а не в модале, поскольку, стоит только изменить масштаб страницы, или включить "панорамирование", или еще как-то сказать опере что страница изменилась и её геометрию надо "пересчитать" - модал перескакивает туда где он и должен быть по идее. Точно также модалы (самые разные) основанне на .shadow{position:fixed} ведут себя на всяких мобильных недобраузерах, которые стараются слишком часто страницу не пересчитывать, а относятся к ней как к некоему скриншоту. При включенной панели Opera Dragonfly (да, это опера 12, а не 15) глюк не появляется, поэтому отладить его практически невозможно.

Вопрос в следующем: Можно ли каким-то образом с помощью javascript'а подсказать модалу что он не там где надо? Мне не требуется чтобы изменения были внесены в сам код модала, поскольку я делаю компонент для внедрения вашего модала в Yii, и всё равно добавляю туда некоторый свой функционал - я без проблем могу добавить и этот. Но у самого пока не хватает ума как это сделать...
Чуть позже может быть смогу сделать страницу-пример, на которой можно будет увидеть данные эффекты, пока баг появляется не каждый раз, и четко повторить его не удаётся (но пока отлаживал страницу с большим количеством модалов и кнопок, увидел этот баг раз сто)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions