我的 aspx 页面上有一个 iframe。在这个 iframe 中,我正在调用另一个包含覆盖和弹出 div 的 aspx 页面。在按钮上单击(在 iframe 中)我正在显示覆盖和弹出窗口。我已经正确设置了绝对位置和 z-index,但问题是弹出窗口和覆盖仅覆盖 iframe 区域而不是父页面。
5 回答
如果您不能将弹出 HTML 放在父页面中,我建议您克隆弹出 div 和覆盖 div,然后将其附加到父页面的正文。确保复制事件和数据(如果有)。
我会给你这种行为的可能解释。
- 您可能已经在 i-frame 内调用的页面上定义了弹出窗口和叠加层。
- 您可能没有给出覆盖宽度:100%,高度:100%;
- 理想情况下,您应该使用 position: fixed 覆盖,否则如果您的页面向下滚动覆盖将超出视口。
我们可以在某个地方看到你的这个页面吗?
如果您在包含 iframe(主页)的页面上定义弹出窗口和叠加层,它应该按照您的意愿显示
您不能从 iframe 内的页面定位父页面.. 这是不可能的.. 弹出窗口将 iframe 作为其父页面...如果您希望弹出窗口覆盖屏幕,那么您可以做到这一点的唯一方法是定义您在 iframe 中调用的页面中定义的所有控件,位于父页面本身的 div 中。
说:你有一个.aspx 页面。里面有一个 id=frame 的 iframe。现在 iframe 的 src 设置为 b.aspx。因此,无论您在 b.aspx 中有什么控件,您都可以在 a.aspx 中定义一个 div,并将 b.aspx 的所有控件放入该 div 中。这样现在您可以将 a.aspx 定位为弹出窗口。
我不知道您是否有定义 iframe 并调用另一个页面的特定原因。但是如果没有特定原因,那么您可以使用此方法.. :)
如果您有任何疑问,请告诉我
有一个解决方案给你。
将您覆盖在父页面中,即在包含 iframe 的页面上。
function showHide(){ parentWin = window.parent; var overlay = parentWin.document.getElementById('mask'); if(overlay.style.display == 'none'){ overlay.style.display = 'block'; } }
使用上述功能从 i-frame 内的页面访问父页面的覆盖,你很高兴。
让我知道任何问题