iframe中的位置对话框

时间:2014-02-20 15:56:41

标签: javascript jquery css iframe dialog

我正在处理在iframe中运行的应用程序。 iframe很长,但从来没有滚动条 - 但外页显然是这样。

在iframe中我显示模态对话框(来自dojo的对话框),并且要求对话框应从视口顶部定位为10px。但似乎jquery没有任何可用的函数,它将确定相对于当前工具栏设置的正确位置(scrollTop需要使用外部页面中的元素调用而没有因为iframe比视口长) 。此外,无法使用固定的CSS位置,因为它需要位于顶级文档中。

我也尝试使用dojo支持对象窗口,但定位也无法正常工作......

感谢您提前提供任何帮助。

1 个答案:

答案 0 :(得分: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";
    }