Javascript iframe中的位置对话框

Javascript iframe中的位置对话框,javascript,jquery,css,iframe,dialog,Javascript,Jquery,Css,Iframe,Dialog,我正在开发在iframe中工作的应用程序。iframe相当长,但从来没有滚动条,但外部页面显然有滚动条 在iframe中,我显示的是模态对话框(来自dojo的对话框),要求对话框的位置应为距视口顶部10px。但是jquery似乎没有任何可用的函数来确定相对于当前工具栏设置的正确位置,如(scrollTop需要使用外部页面中的元素来调用,没有,因为iframe比视口长)。此外,不可能使用css位置固定,因为它需要位于顶级文档中 我也尝试过使用dojo支持对象窗口,但是定位也不能正常工作 感谢您提前

我正在开发在iframe中工作的应用程序。iframe相当长,但从来没有滚动条,但外部页面显然有滚动条

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

我也尝试过使用dojo支持对象窗口,但是定位也不能正常工作


感谢您提前提供的帮助。

您可以向父页面“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);
    };
function SetTopValue(top) {
        document.getElementById("MODAL_DIV").style.top = (10 + top) + "px";
    }
在子端,将modal div设置为固定的css位置,在接收父滚动值的javascript函数上,将“top”属性设置为“scrollvalue+10”。大概是这样的:

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);
    };
function SetTopValue(top) {
        document.getElementById("MODAL_DIV").style.top = (10 + top) + "px";
    }