Привет!
Стоит задача сделать extension, который будет размещать свой блок поверх всех просматриваемых сайтов (отодвигая их контент вниз на размер блока).
Оказалось, что родные блоки с position:fixed позиционируются относительно всего окна и перекрывают мой блок.
Предполагаемые направления решения:
- Сканировать DOM на предмет объектов с position:fixed и увеличивать в них top на требуемую величину.
- Каким-то образом засовывать всё родное содержимое сайтов в iframe, который не будет мешать моему блоку.
Проблемы первого решения:
- Надо ждать полной загрузки страницы.
- Весьма вероятен визуальный "прыжок".
- Если какой-то скрипт завязан на координаты от верха и контролирует поведение родных fixed-элементов, то ему будет грустно.
Проблемы второго решения:
- Не знаю как это делается, лишь предполагаю.
- Возможен ли в таком варианте прямой доступ к DOM страниц сайтов?
- Некоторые сайты детектируют свою загрузку в iframe и что-то предпринимают по этому поводу.
Какой вариант посоветуете и как решать его проблемы?
Может есть уже работающее решение (для изучения)? Для рекламно-спамерских целей часто используется похожий inject своих блоков, но я так на вскидку не могу придумать как их найти и изучить.
p.s. Extension нужен для проведения онлайн-тестирования, не подумайте плохого! 8-)