2014-02-20 1 views
0

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

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

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

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

ответ

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); 
    }; 

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

function SetTopValue(top) { 
     document.getElementById("MODAL_DIV").style.top = (10 + top) + "px"; 
    } 
Смежные вопросы