0

我的 aspx 页面上有一个 iframe。在这个 iframe 中,我正在调用另一个包含覆盖和弹出 div 的 aspx 页面。在按钮上单击(在 iframe 中)我正在显示覆盖和弹出窗口。我已经正确设置了绝对位置和 z-index,但问题是弹出窗口和覆盖仅覆盖 iframe 区域而不是父页面。

4

5 回答 5

1

如果您不能将弹出 HTML 放在父页面中,我建议您克隆弹出 div 和覆盖 div,然后将其附加到父页面的正文。确保复制事件和数据(如果有)。

于 2013-08-06T08:46:18.187 回答
0

我会给你这种行为的可能解释。

  1. 您可能已经在 i-frame 内调用的页面上定义了弹出窗口和叠加层。
  2. 您可能没有给出覆盖宽度:100%,高度:100%;
  3. 理想情况下,您应该使用 position: fixed 覆盖,否则如果您的页面向下滚动覆盖将超出视口。

我们可以在某个地方看到你的这个页面吗?

于 2013-07-30T07:44:01.010 回答
0

如果您在包含 iframe(主页)的页面上定义弹出窗口和叠加层,它应该按照您的意愿显示

于 2013-07-30T08:22:06.627 回答
0

您不能从 iframe 内的页面定位父页面.. 这是不可能的.. 弹出窗口将 iframe 作为其父页面...如果您希望弹出窗口覆盖屏幕,那么您可以做到这一点的唯一方法是定义您在 iframe 中调用的页面中定义的所有控件,位于父页面本身的 div 中。

说:你有一个.aspx 页面。里面有一个 id=frame 的 iframe。现在 iframe 的 src 设置为 b.aspx。因此,无论您在 b.aspx 中有什么控件,您都可以在 a.aspx 中定义一个 div,并将 b.aspx 的所有控件放入该 div 中。这样现在您可以将 a.aspx 定位为弹出窗口。

我不知道您是否有定义 iframe 并调用另一个页面的特定原因。但是如果没有特定原因,那么您可以使用此方法.. :)

如果您有任何疑问,请告诉我

于 2013-07-30T08:27:55.053 回答
0

有一个解决方案给你。

  1. 将您覆盖在父页面中,即在包含 iframe 的页面上。

    function showHide(){
    
        parentWin = window.parent;
    
        var overlay = parentWin.document.getElementById('mask');
    
        if(overlay.style.display == 'none'){
            overlay.style.display = 'block';
        }
    
     }
    
  2. 使用上述功能从 i-frame 内的页面访问父页面的覆盖,你很高兴。

让我知道任何问题

于 2013-07-30T09:33:03.623 回答