0

我对iFrame的理解是里面的内容就是src里面包含的内容。我见过许多使用 iFrame 的小部件,如 Facebook 等。

当我尝试使用 iFrame 时,我有一个 HTML 文件,其中只有一个 div 和一些内容,没有头部、正文等。只有 HTML 中的内容。但是 iFrame 总是加载整个页面并最终在 iFrame 中给我一个递归 iFrame。

我不明白这是怎么回事,因为我在 iFrame 中引用的 HTML 文件只是内容,没有别的。我不包括页眉、页脚,但无论如何都会显示所有内容。

我已经看到人们在谈论将 iFrame 滚动到某个部分,甚至在 src 中使用 div 的 id 并设置 scrolling=no。这可行,但我的 iFrame 内容将根据用户输入重新加载,一旦重新加载,它就会返回到 iFrame 内页面的左上角部分。

这没有任何意义。也许这应该是一个小部件或什么?

编辑 SD 以显示一些格式化的代码:@Surreal Dreams

这就是奇怪的事情。我正在使用 web2py,所以它可能是后端固有的东西导致了这种情况。html 文件实际上是一个 div 包装器,其中包含一些元素。但我认为 web2py 会在其中添加标题,即使我没有扩展任何类型的布局。我最终确实通过引用保存在另一个 url 的同一个 html 文件来使其正常工作。它在那里正确显示,而 web2py 不会干扰 html 结构。

之前发生了什么,我有这样的代码:

{{extend 'layout.html'}}
<div class="wrapper">
<page content>
<aside id="iFrame wrapper">
<iframe src="/rates.html"></iframe>
</aside>
</div>

这就是 web2py 页面的基本结构,其中在布局内部你有所有的页眉、页脚等。发生的事情是它会生成整个页面,并且在你到达 iFrame 的地方,它会在里面再次生成页面iFrame,然后再次向下到 iFrame,它继续在每个 iFrame 的页面内无限渲染页面。

4

1 回答 1

2

iframe 将始终加载整个网页,在 iframe 的 src 属性中引用。即使你的文件只包含一个 div,我相信浏览器会认为它是一个完整的页面并自动添加一个头部和正文。

“我已经看到人们在谈论将 iFrame 滚动到某个部分” => 对,一旦 iframe 中的页面被加载,您就可以使用 JavaScript 访问和操作其 DOM:

var myIframe = parent.document.getElementById("myIframe");
var window = myIframe.contentWindow;
于 2012-05-22T21:31:20.557 回答