Диалог положения в iframe

0

Я работаю над приложением, которое работает в iframe. IFrame довольно длинный, но никогда не имеет полосы прокрутки, но внешняя страница явно делает.

В iframe я показываю модальный диалог (один из додзе), и требуется, чтобы диалог был позиционирован как 10px из верхней части окна просмотра. Но похоже, что jquery не имеет никакой полезной функции, которая будет определять правильную позицию в отношении текущих настроек панели инструментов, поскольку (scrollTop требует, чтобы ее вызывали с помощью элемента с внешней страницы, и нет, поскольку iframe длиннее, чем область просмотра), Также невозможно использовать фиксированную позицию css, поскольку она должна быть в документе верхнего уровня.

Я также попытался использовать окно объекта поддержки Dojo, но позиционирование также не работает правильно...

Спасибо за любую помощь заранее.

Теги:
iframe
dialog

1 ответ

0
Лучший ответ

Ну, вы можете добавить обработчик на родительскую страницу "onscroll". На обработчике вы можете получить верхнее положение прокрутки и отправить это значение в дочерний кадр через функцию, например:

window.onscroll = function() {
        var doc = document.documentElement, body = document.body;
        var top = (doc && doc.scrollTop  || body && body.scrollTop  || 0);
        document.getElementById("IFRAME_ID").contentWindow.SetTopValue(top);
    };

На дочерней стороне установите модальный div в фиксированную позицию css, а в функции javascript, которая получает родительское значение прокрутки, вы устанавливаете свойство "top" как "scrollvalue + 10". Что-то вроде этого:

function SetTopValue(top) {
        document.getElementById("MODAL_DIV").style.top = (10 + top) + "px";
    }

Ещё вопросы

Сообщество Overcoder
Наверх
Меню