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