позиционирование jquery-диалога внутри iframe, относящегося к родительскому окну - PullRequest
2 голосов
/ 05 мая 2010

Привет всем

У меня есть сайт с очень большой прокруткой, а в середине есть фрейм установлен без прокрутки и его высота 3000

в любом случае документ, открываемый в iframe, содержит диалог jquery.

когда я смотрю на верхнюю часть родителя и нажмите кнопку внутри фрейма, который открывает диалоговое окно диалог открывается в середине фрейма, и я не вижу его ...

это потому, что он выполняет вычисления на основе документа, а не верхнего документа

как я могу это изменить?

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

вот как я открываю свой диалог:

generalDialog.dialog({
   bgiframe:false, height:p_height, width:480, modal:true, autoOpen:false, hide:'fadeout', show:'slide', closeOnEscape:true}); generalDialog.dialog("open");

заранее спасибо

Ответы [ 2 ]

3 голосов
/ 06 мая 2010

я получил его на работу!

это то, что вам нужно изменить в плагине диалога jquery это очень хорошее изменение, потому что оно заставляет диалог работать как с iframe, так и с обычной страницы

(это будет работать, только если вы находитесь в одном домене)

это строки, которые нужно изменить:

вот этот:

pTop = doc.scrollTop()

к этому:

pTop = $(top.document).find("html").scrollTop()

и этот:

pTop += (wnd.height() - this.uiDialog.outerHeight()) / 2;

к этому:

pTop += ($(top.document).find("html").attr("clientHeight") - this.uiDialog.outerHeight()) / 2;       

это исправляет.

0 голосов
/ 05 мая 2010

вы должны использовать self.parent для ссылки на объект документа, в котором содержится ваш iframe при выполнении вычислений, иначе вычисления основаны на объекте документа внутри iframe. Это то, что в настоящее время заставляет ваш диалог находиться в центре объекта документа в iframe, а не объекта документа родительской страницы, содержащей iframe. надеюсь, что имеет смысл:)

...