HTML5 iFrame 无缝属性

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

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

知道为什么没用吗?

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

110300 次浏览

还没有正确的支持。

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

更新: 2016年10月

seamless属性不再存在。它最初被定位为包含在第一个 HTML5规范中,但随后被放弃了。在 HTML5.1草案中,同名的一个不相关的属性出现了,但那也是在2016年中被丢弃:

因此,我认为从实现者和 web 开发者的角度来看,所有这一切的要点都是,seamless as-spected 似乎不是任何人想要的开始。至少比任何人想要的都多。无论如何,就像 @ annevk所说的,似乎很多事情已经被“事件克服”了。

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

为了子孙后代着想,这是我五年前的原始答案:

原始答案: 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 属性,这里我找到了一篇德语文章 http://www.solife.cc/blog/html5-iframe-attribut-seamless-beispiele.html

这里是另一个关于这个主题的演讲: http://benvinegar.github.com/seamless-talk/

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

你只需要写

天衣无缝

不需要:

天衣无缝 = “天衣无缝”

我也是刚发现的。

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

滚动 = “不” 在 html5中似乎仍然可以工作。我已经尝试使用内联样式的 溢出函数,正如 html5所推荐的那样,但这并不适合我。

使用 iframe 上的 frameorders 属性,并将其设置为 frameorders = “0”。这样看起来就天衣无缝了。现在你可能会说,我希望嵌套的 iframe 来控制,而不是我有滚动条。然后,您需要创建一个 JavaScript 脚本文件,用于计算高度减去所有标头,并设置高度。Debol 是一个 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月,火狐和 IE 11都不支持 iframe,Chrome、 Safari 和 Opera (webkit 版本)都支持 iframe

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

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

你可以检查不同的平台,在评分部分,你可以点击每一个浏览器,看看哪些是支持的,哪些是不支持的。

IO8对 iframe 无缝属性提供了 被移除了支持。

  • 在 Safari,HomeScreen,新的 WKWebView 和 UIWebView 中测试。

IOS8其他更改的详细资料及表现评估:

根据今天发布的最新 W3C HTML5推荐标准(可能是最终的 HTML5标准) ,Iframe 元素中没有无缝属性已经不复存在了。似乎在标准化过程中被移除了。

根据 Caniuse.com,没有主流浏览器支持这个属性(不再) ,所以你可能不应该使用它。

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

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

它将把 iframe 调整为 viewport 大小(考虑到更广泛的内容)。 在前者较大的情况下,它可以使用视窗高度来代替内容高度。