HTML5 iFrame无缝属性

在HTML5中,iframe具有新的属性,如“无缝”,应该删除边框和滚动条。 我试过了,但似乎没有工作,我仍然可以看到滚动条和边框(我使用谷歌浏览器作为浏览器),这是我的代码:

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

任何想法,为什么它不工作?

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

它尚未正确支持。

Chrome 31(也可能是较早的版本)支持属性的某些部分,但并不完全支持。

更新date:2016年10月

seamless属性不再存在。 最初被包含在第一个HTML5规范中,但后来被抛弃了。 一个不相关的同名属性在HTML5.1草案中做了一个简短的介绍, 但是在 2016年年中也被抛弃了:

所以我认为从实现者和networking开发者的angular度来看, seamless as-specced似乎并不是人们想要的开始。 或者至less比任何人想要的都要多。 无论如何,就像@annevk说的那样,从Shadow DOM的angular度来看 ,它似乎已经被“事件克服”了很多。

换句话说:从内存中清除seamless属性,假装它永远不存在。

为了后人的缘故,这是我五年前的原始答案:

原始答案:2011年4月

该属性目前处于草稿模式。 出于这个原因,目前的浏览器都还没有支持它(因为实现可能会发生变化)。 同时,最好使用CSS去除iframe中的边框/滚动条:

 iframe[seamless]{ background-color: transparent; border: 0px none transparent; padding: 0px; overflow: hidden; } 

除了可以用CSS添加的元素之外,还有更多的属性是无缝的:属性背后的部分推理是允许嵌套内容inheritance应用于iframe的相同样式(就像embedded文档嵌套在元素中一样,例如)。

最后,Internet Explorer(8和更早版本)的版本需要额外的属性才能删除边框,滚动条和背景色:

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

当然,这并不能证实。 所以这取决于你如何处理它。 我的(挑剔的)方法是嗅探代理string,并为9之前的IE版本添加属性。

希望有所帮助。 🙂

根据今天发布的最新W3C HTML5推荐标准(可能是最终的HTML5标准), iframe元素中不再有无缝的属性 。 它似乎已经在标准化进程的某个地方被删除了。

根据caniuse.com,没有一个主要的浏览器不支持这个属性,所以你可能不应该使用它。

现在可以使用semless属性,在这里我find了一篇德文文章http://www.solife.cc/blog/html5-iframe-attribut-seamless-beispiele.html

这里是关于这个话题的另一个介绍: http : //benvinegar.github.com/seamless-talk/

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

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

在铬版本32中,2像素边框自动出现在没有无缝属性的iframe周围。 可以通过添加这个CSS规则来轻松删除它:

 iframe:not([seamless]) { border:none; } 

Chrome使用与这些默认用户代理样式相同的select器:

 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; } 

iO8已经取消了对iframe无缝属性的支持。

  • testingSafari,HomeScreen,新的WKWebView和UIWebView。

其他iOS 8更改的全面详细信息和性能审查:

  • iOS8在cordova邮件列表上发生变化
  • Sencha.com博客:苹果在iOS 8上performance出对HTML5的热爱

你只需要写

无缝

在你的代码中。 不需要:

无缝=“无缝”

我只是自己find了这个。

编辑 – 这不会删除滚动条。 奇怪的是

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

在iframe上使用frameborder属性,并将其设置为frameborder =“0”。 这产生了无缝的外观。 现在你可能会说我想要嵌套的iframe来控制,而我有滚动条。 然后,你需要掀起一个JavaScript脚本文件,计算高度减去任何标题,并设置高度。 Debounce是需要JavaScript插件,以确保resize适当地在旧版浏览器,有时铬。 这会让你走向正确的方向。

仍然在2014年,所有主stream浏览器都没有完全支持iframe,所以您应该寻找替代解决scheme。

到2014年1月,无论IE 11还是不支持iframe的无缝iframe,并且Chrome,Safari和Opera(webkit版本)都支持它,

如果你想检查这个和更多支持选项的细节,HTML5testing网站将是一个不错的select:

http://html5test.com/results/desktop.html

您可以检查不同的平台,在评分部分,您可以点击每个浏览器,看看有什么支持,什么不是。

我找不到任何符合我的要求的东西,我想出了这个脚本(取决于jQuery):

https://gist.github.com/invernizzie/95182de86ea9dc5daa80

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