iframe中的弹出式叠加层未显示在页面顶部

时间:2013-07-30 07:35:05

标签: html asp.net iframe popup

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

5 个答案:

答案 0 :(得分:1)

如果您无法在父页面中放置弹出式HTML,我建议您复制popup div和overlay div,然后将其附加到父页面的主体。 确保复制事件和数据(如果有的话)。

答案 1 :(得分:0)

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

  1. 您可能已在i-frame内调用的页面上定义了弹出窗口和叠加层。
  2. 您可能没有给出叠加宽度:100%,高度:100%;
  3. 理想情况下,您应该使用位置:固定为叠加层,否则如果您的页面向下滚动,叠加层将超出视口。
  4. 我们可以在某个地方看到你的这个页面吗?

答案 2 :(得分:0)

如果您在包含iframe(主页)的页面上定义弹出窗口和叠加层,则应该按照您希望的方式显示

答案 3 :(得分:0)

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

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

我不知道你是否有特定的理由来定义iframe并调用另一个页面..但如果没有具体原因那么你可以使用这种方法.. :)

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

答案 4 :(得分: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内的页面访问父页面的叠加层,你就可以了。

  3. 让我知道任何问题