是空的iframe src有效吗?
我想要一个iframe最初有src
作为空白,然后一旦页面加载; 调用JS函数,然后将src
值设置为实际值
所以是<iframe src="#" />
有效或者我需要使用其他的东西像javascript:;
等等
只是<iframe src='about:blank'></iframe>
HTML 5的工作草案第4.8.2节说(强调我的):
src
属性给出了嵌套浏览上下文将包含的页面的地址。 该属性(如果存在)必须是可能被空格包围的有效非空URL 。
根据RFC 3986 ,有效的URL必须以scheme名称开头,相关引用不能只包含一个片段 。
因此, #
不是有效的URL,不应该用作src
属性的值。
使用about:空白代替。
不,指定一个空的iframe src是无效的 。
你应该使用<iframe src="about:blank" />
。
#
是对当前页面中的锚点的引用 (或者,在处理AJAX请求时经常用作路由scheme)。 将它用作iframe的源代码将是毫无意义的,因为iframe不会引用当前页面上的内容,也不会与AJAX请求一起使用。
about:blank
是一个跨浏览器的标准来显示一个空白文档。
2012年6月8日更新:
如果src
属性丢失,那么'living'规范似乎不再呈现iframe:
如果在创build元素时未设置srcdoc属性,并且src属性也未设置或设置,但其值不能被parsing,浏览上下文将保留在最初的about:blank页面上。
如果这两个属性都未设置,则浏览上下文将默认为about:blank
。 为了提供适当的向后兼容性,build议使用冗长的,现在提供about:blank
url。
看起来你也可以完全忽略src:
http://dev.w3.org/html5/spec/Overview.html#the-iframe-element
如果在创build元素时未设置 srcdoc属性,并且src属性也未设置或设置,但其值不能被parsing,浏览上下文将保留在最初的about:blank页面上。
您可以在src
属性中使用about:blank
(正如前面的ariel所述),否则当从安全页面提供时会引发错误。
安全的页面https
会在安全的网站上抛出可能不安全的数据的错误。
你可以尝试通过Javascript添加iframe,所以你不需要在HTML中有一个空白的:
(jQuery示例)
<script type="text/javascript"> $().ready(function() { $("<iframe />").attr("src", "http://www.bbc.co.uk/").appendTo("body"); }); </script>
使用Javascript添加iframe可以降低优雅性 – 没有Javascript的用户将看不到空白的iframe。
作为关于URIscheme标准的一部分,about:blank可能是最好的select,因为它有非常好的浏览器支持。
about:blank返回媒体types为text / html和字符编码为UTF-8的空白HTML文档。 这被广泛用于将空白页面加载到浏览上下文中,例如HTML中的iframe,然后可以通过脚本进行修改。 你可以在这里看到更多