HTML5 iFrame无缝属性

HTML5 iFrame无缝属性,html,iframe,attributes,Html,Iframe,Attributes,在HTML5中,iframe具有“无缝”等新属性,可以删除边框和滚动条。我已经试过了,但似乎不起作用,我仍然可以看到滚动条和边框(我使用Google Chrome作为浏览器),下面是我的代码: <iframe seamless="seamless" title="google" width="600" height="300" src="http://www.google.co.uk"></iframe> 知道它为什么不起作用吗 还有一个问题,是否可以在iframe

在HTML5中,iframe具有“无缝”等新属性,可以删除边框和滚动条。我已经试过了,但似乎不起作用,我仍然可以看到滚动条和边框(我使用Google Chrome作为浏览器),下面是我的代码:

<iframe seamless="seamless" title="google" width="600" height="300" src="http://www.google.co.uk"></iframe>

知道它为什么不起作用吗


还有一个问题,是否可以在iframe中针对页面的特定部分?

目前还不正确支持

Chrome 31(可能还有更早的版本)支持该属性的某些部分,但不完全支持。

更新日期:2016年10月 无缝
属性不再存在。它最初被列入第一个HTML5规范,但后来被放弃。一个同名的无关属性在HTML5.1草案中做了一个简短的客串,在2016年年中被抛弃:

因此,我认为无论是从实现者方面还是从web开发人员方面,其要点都是
无缝
as specced似乎不是任何人想要的开始。或者至少比任何人想要的都多。不管怎么说,就像@annevk所说的,在阴影DOM的光照下,它似乎被很多事件“克服”

换句话说:从内存中清除
无缝
属性,并假装它从未存在过

为了子孙后代,以下是我五年前的原始答案:

原始答复:2011年4月 该属性目前处于草稿模式。因此,目前还没有一款浏览器支持它(因为实现可能会发生变化)。同时,最好只使用CSS从iframe中删除边框/滚动条:

iframe[seamless]{
    background-color: transparent;
    border: 0px none transparent;
    padding: 0px;
    overflow: hidden;
}
无缝属性不仅仅是CSS可以添加的内容:属性背后的部分原因是允许嵌套内容继承应用于iframe的相同样式(例如,就好像嵌入的文档是元素内部的一个大嵌套)

最后,Internet Explorer版本(8及更早版本)需要附加属性以删除边框、滚动条和背景颜色:

<iframe frameborder="0" allowtransparency="true" scrolling="no" src="..."></iframe>

当然,这并不正确。所以这取决于你如何处理它。我(挑剔的)方法是嗅探代理字符串,并为早于9的IE版本添加属性


希望有帮助。:)

现在可以使用semless属性,在这里我找到了一篇德语文章

下面是关于这个主题的另一个演示:


您必须使用window.postMessage方法在父对象和iframe之间进行通信。

您只需编写

无缝的

在你的代码中。不需要:

无缝=“无缝”

这是我自己发现的

编辑-这不会删除滚动条。奇怪地

滚动=“否” 在html5中似乎仍然有效。我已经尝试过使用html5推荐的内联样式的溢出函数,但这对我不起作用


在iframe上使用frameborder属性,并将其设置为frameborder=“0”。这将产生无缝的外观。现在你可能会说我想要嵌套的iframe来控制而不是滚动条。然后,您需要快速生成一个JavaScript脚本文件,该文件计算高度减去任何头并设置高度。Debounce是一个javascript插件,用于确保在较旧的浏览器(有时是chrome浏览器)中适当调整大小。这会让你走上正确的方向

我认为这可能对某人有用:

在chrome版本32中,iFrame周围会自动出现一个2像素的边框,而没有无缝属性。 通过添加以下CSS规则,可以轻松地删除:

iframe:not([seamless]) { border:none; }
Chrome使用与以下默认用户代理样式相同的选择器:

iframe:not([seamless]) {
  border: 2px inset;
  border-image-source: initial;
  border-image-slice: initial;
  border-image-width: initial;
  border-image-outset: initial;
  border-image-repeat: initial;
}

到2014年,无缝iframe还没有得到所有主流浏览器的完全支持,因此您应该寻找替代解决方案

到2014年1月,Firefox和IE 11仍然不支持无缝iframe,Chrome、Safari和Opera(webkit版本)也支持无缝iframe

如果您想详细检查此选项和更多受支持的选项,HTML5测试站点将是一个不错的选项:


您可以查看不同的平台,在“评分”部分,您可以单击每个浏览器,查看哪些浏览器受支持,哪些不受支持

iO8已删除对iframe无缝属性的支持

  • 在Safari、主屏幕、新WKWebView和UIWebView中测试
其他iOS 8更改的完整详细信息和性能审查:


根据今天发布的最新W3C HTML5建议(很可能是最终的HTML5标准),还有更多。它似乎在标准化过程中的某个地方被删除了


据了解,没有主流浏览器(现在)支持此属性,因此您可能不应该使用它。

我找不到任何符合我要求的内容,因此我提出了此脚本(取决于jQuery):

它将iframe调整为视口大小(考虑更宽的内容)。
如果前者更大,则可以改进使用视口高度而不是内容高度。

该演示有助于实现无缝连接。德语文章实际上非常有用(如果你当然会说德语)。我最感兴趣的是,“无缝”在本地不受支持(使用file://protocol)
overflow:hidden--不确定这在这种情况下是否有意义。我认为无缝应该让它成为父文档的一部分;因此,它更像是被最大化了(如果iframe是文档中唯一的元素,则底部/顶部/左侧/右侧设置为0),并且它将具有适当的滚动,作为父文档的一部分,iframe的所有部分都是可读的<代码>溢出:hidden
根本不会这样做——它只会使iframe被删除