2012-06-25 134 views
3

我有一个网站与iFrame。iFrame内容不显示在IE8中

主机页面上有一些非常基本的JS,iframed页面也有简单的JS。

当我像平常一样嵌入iframe时:<iframe src="iframeURL" width="900" height="1000"></iframe>它在所有浏览器中都能正常工作,但在IE8中运行正常。

我尝试过各种东西:

  • 第一:禁用所有JS
  • 删除src属性,并与JS将其添加使用<object>
  • 代替
  • 我用proxy.php使内容出现就好像它来自相同的域

它不在IE8中工作,无论我做什么。

有趣的是,我可以在单独的选项卡中打开我想要的iframe的页面,并且工作得很好。

如果我将src属性更改为“some_other_random_page_from_internet”,它将起作用。

另一件事是,主机和iframe使用postMessage进行通信,我可以看到通信工作正常,它只是没有显示的内容,但是当我用开发人员工具检查页面源时,我可以看到内容在那里。

iframe的内容可能导致问题吗?这是一个基本的HTML +基本的JS,JS禁用它不应该是一个问题。

任何想法我可以检查什么?

PS。我不能显示代码(NDA等)

+0

你能看到的iFrame在其他网站? http://www.w3schools.com/html/html_iframe.asp 尝试一个W3C验证程序,另一台PC,另一个docType,以停止所有软件,如Skype,防火墙/防病毒/恶意软件...... –

+0

这是非常好的一点。 iframed页面不验证(无效的文档类型)。由于目前我无法对其进行更改(其他人正在管理该内容),所以我必须等待它是否能解决问题。 – strah

+0

它没有解决问题。我可以在iframe中看到其他网站,但不是那个特定的网站。尝试不同的PC ... – strah

回答

4

对于Lukx's comment的可见性,真正的答案是在iframe本身上设置position:relative,因为您可能无法编辑html源页面,或者可能需要使用相对定位。

只需添加这个CSS,你应该准备就绪:

iframe { 
    position: relative; 
} 

我写了这个问题的完整描述在this answer

10

找到它了。

的iFrame内容有以下CSS规则:

html{ position: relative; } 

删除它帮助了很多。

+4

当一个不能够修改iframe的里面:你可以在iframe标签上也设置了'position:relative' – Lukx