在Chrome中呈现iframe

时间:2012-01-12 13:31:47

标签: css google-chrome iframe

我在iframe内的主页上显示的页面很少。

我在主页面上有一个背景图片,当我点击按钮更改框架内的页面时,框架背景颜色变为白色,直到页面可见。

我将background-color:transpert添加到页面本身和主页CSS。

我使用FireFox和IE检查了网站,它看起来很好(框架的背景不会改变)但是使用Chrome时,它的呈现效果很好,就像我想要的那样,有时候iframe背景会变成白色。

我可以做任何能解决问题的事吗?

2 个答案:

答案 0 :(得分:3)

由于这是浏览器行为,我怀疑它可以真正“修复”。

一种解决方法是在加载框架时隐藏框架(仅适用于Chrome) - 以下是代码:

var isChrome = (navigator.userAgent.indexOf("Chrome") >= 0);
function LoadFrame(url) {
    var oFrame = document.getElementById("myframe");
    if (isChrome) {
        oFrame.style.visibility = "hidden";
        oFrame.onload = function() {
            oFrame.style.visibility = "visible";
        };
    }
    oFrame.src = url;
}

Live test case。 (在那里重新加载相同的框架,但概念是相同的)

答案 1 :(得分:1)

我使用了非常相似的态度。此方法仅适用于iFrame中的页面受您控制的情况。

更改是iframe中的页面在父窗口中找到iframe并再次显示:

<iframe style="visibility: hidden;" id="iframe_id" src="my_page.html" />

// inside my_page.html:
window.onload = function() {
    // make sure the parent iframe is visible
    if (window.parent)
    {
        var nodeIframe = window.parent.document.getElementById(window.name);
        if (nodeIframe)
        {
            nodeIframe.style.visibility = "visible";
        }
    }
};