我正在处理在iframe中运行的应用程序。 iframe很长,但从来没有滚动条 - 但外页显然是这样。
在iframe中我显示模态对话框(来自dojo的对话框),并且要求对话框应从视口顶部定位为10px。但似乎jquery没有任何可用的函数,它将确定相对于当前工具栏设置的正确位置(scrollTop需要使用外部页面中的元素调用而没有因为iframe比视口长) 。此外,无法使用固定的CSS位置,因为它需要位于顶级文档中。
我也尝试使用dojo支持对象窗口,但定位也无法正常工作......
感谢您提前提供任何帮助。
答案 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";
}