3

我有一个带有 iFrame 的网站。

主机页面上有一些非常基本的 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 等)

4

2 回答 2

10

找到了。

iframed 内容具有以下 css 规则:

html{ position: relative; }

删除它有很大帮助。

于 2012-06-26T10:42:32.420 回答
4

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

只需添加此 CSS,您就应该准备就绪:

iframe {
    position: relative;
}

我在这个答案中写下了问题的完整描述

于 2014-05-22T21:39:11.607 回答