<iframe seamless="seamless" title="google" width="600" height="300" src="http://www.google.co.uk"></iframe>
知道为什么它不起作用吗?
还有一个问题,是否可以在iframe中定位页面的特定部分?
答案 0 :(得分:116)
seamless
属性不再存在。它最初是为了包含在第一个HTML5规范中,但后来被删除了。 HTML5.1草案中有一个不相关的同名属性,but that too在2016年中期被抛弃:
所以我认为从实现者方面和网络开发方面来看,它的主旨是
seamless
所谓的似乎并不是任何人想要开始的。或者至少它比任何人真正想要的更多。无论如何,像 @annevk 所说的那样,似乎很多事情都是根据Shadow DOM“被事件克服”。
换句话说:从你的记忆中清除seamless
属性,假装它从未存在过。
为了后人的缘故,这是我五年前的原始答案:
此属性目前处于草稿模式。出于这个原因,当前的浏览器都没有支持它(因为实现可能会发生变化)。在此期间,最好只使用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版本的属性。
希望有所帮助。 :)
答案 1 :(得分:54)
根据今天发布的最新W3C HTML5推荐(可能是最终的HTML5标准),已经有no seamless attribute in the iframe element了。它似乎已在标准化过程中的某处被删除。
根据caniuse.com,没有主要的浏览器支持此属性(不再),所以你可能不应该使用它。
答案 2 :(得分:28)
它尚未正确支持。
Chrome 31(可能还有早期版本)支持属性的某些部分,但不完全支持。
答案 3 :(得分:6)
现在可以使用semless属性,在这里我发现了一篇德语文章http://www.solife.cc/blog/html5-iframe-attribut-seamless-beispiele.html
以下是关于此主题的另一个演示文稿:http://benvinegar.github.com/seamless-talk/
您必须使用window.postMessage方法在父级和iframe之间进行通信。
答案 4 :(得分:2)
我认为这可能对某人有用:
在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;
}
答案 5 :(得分:2)
iO8对iframe无缝属性的已移除支持。
其他iOS 8更改的完整详细信息和效果评估:
答案 6 :(得分:0)
你只需要写
你的代码中的无缝
。不需要:
无缝=“无缝”
我刚刚发现了这个。
编辑 - 这不会删除滚动条。奇怪的是
SCROLLING = “否” 仍然似乎在html5中工作。我尝试使用html5推荐的内联样式的溢出函数,但这对我不起作用。
答案 7 :(得分:0)
在iframe上使用frameborder属性并将其设置为frameborder =“0”。这产生了无缝的外观。现在你可能会说我希望嵌套的iframe能够控制而不是我有滚动条。然后你需要编写一个JavaScript脚本文件来计算高度减去任何标题并设置高度。 Debounce是javascript插件,用于确保调整大小在旧版浏览器中有效,有时也适用于chrome。那会让你朝着正确的方向前进。
答案 8 :(得分:0)
仍然在2014年,所有主流浏览器都不完全支持无缝iframe,因此您应该寻找替代解决方案。
截至2014年1月,Firefox和IE 11仍然不支持无缝iframe,Chrome,Safari和Opera(webkit版本)支持
如果您想详细检查这个以及更多支持的选项,HTML5测试网站将是一个不错的选择:
http://html5test.com/results/desktop.html
您可以检查不同的平台,在分数部分,您可以单击每个浏览器,查看支持的内容和不支持的内容。
答案 9 :(得分:0)
我找不到符合我要求的任何内容,但是我想出了这个脚本(取决于jQuery):
https://gist.github.com/invernizzie/95182de86ea9dc5daa80
它会将iframe的大小调整为视口大小(考虑到更广泛的内容)。 在前者较大的情况下,它可以使用改进来使用视口高度而不是内容高度。