空iframe src是否有效?

时间:2011-05-10 07:27:54

标签: javascript html css iframe

我希望iframe最初将src设为空白,然后在页面加载后;调用JS函数,然后将src值设置为实际值..

<iframe src="#" />是有效还是我需要使用javascript:;等其他内容

10 个答案:

答案 0 :(得分:90)

只是<iframe src='about:blank'></iframe>

答案 1 :(得分:46)

HTML 5工作草案section 4.8.2说(强调我的):

  

src属性给出了地址   嵌套浏览的页面   上下文是要包含的。属性,   如果存在,必须是有效非空   网址可能被空格包围。

根据RFC 3986,有效网址必须以scheme name开头,而相对引用不仅包含fragment

因此,#不是有效的网址,不应用作src属性的值。

改为使用about:blank

答案 2 :(得分:22)

不,无效指定空的iframe src。

您应该使用<iframe src="about:blank" />

#是对当前页面中的锚点的引用(或者,在处理AJAX请求时经常用作路由方案)。使用它作为iframe的源是没有意义的,因为iframe不引用当前页面上的内容而不用于AJAX请求。

about:blank跨浏览器标准,用于显示空白文档。

2012年6月8日更新:

如果缺少src属性,'living' spec似乎不再呈现iframe:

  

如果,在创建元素时,未设置srcdoc属性,并且   src属性也未设置或设置,但其值不能   解决后,浏览上下文将保持在初始状态   关于:空白页。

但是,如果未设置这两个属性,则浏览上下文将默认为about:blank。为了提供适当的向后兼容性,建议使用详细信息,并且暂时提供about:blank网址。

答案 3 :(得分:10)

看起来你也可以完全忽略src:

http://dev.w3.org/html5/spec/Overview.html#the-iframe-element

  

如果在创建元素时,srcdoc属性为未设置,并且   src属性是也未设置或设置,但其值不能   解决后,浏览上下文将保持在初始状态   关于:空白页。

答案 4 :(得分:1)

您可以在about:blank属性中使用src(如前面提到的ariel所述),否则在从安全页面提供服务时会出错。

安全页面https会在安全网站上引发可能不安全数据的错误。

答案 5 :(得分:1)

您可以尝试通过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。

答案 6 :(得分:1)

作为关于URI方案标准的一部分,about:blank可能是最好的选择,因为它具有非常好的浏览器支持。

  

about:blank返回包含媒体类型的空白HTML文档   text / html和字符编码UTF-8。这被广泛用于加载   空白页面进入浏览上下文,例如HTML中的iframe,其中   然后可以通过脚本进行修改。   You can see further here

答案 7 :(得分:0)

记录

让我们说下一个例子(Firefox 58,但它可能存在于所有浏览器中)。

<link href="css.css" rel="stylesheet" type="text/css"/>
<iframe src='about:blank'></iframe>

在css之前加载iframe,因此在加载css之前可以看到页面的渲染。即对于一秒钟的分割,页面看起来没有css。

相反:

<link href="css.css" rel="stylesheet" type="text/css"/>
<iframe src='blank.html'></iframe>

工作正常,加载了css,最后加载了iframe。

答案 8 :(得分:0)

如果您不想使用about:blank,则可以将JavaScript用作src的{​​{1}},如下例所示:

iframe

上面的示例将初始化一个带有简单消息<iframe name="TV" id="tv" style="width:100%; background: #800000" src="javascript:document.write('<h3>Results Window</h3>')"></iframe> 的栗色背景iframe。但是,链接的目标应等于<h3>Results Window</h3> iframe属性,即在该示例中为name

答案 9 :(得分:0)

如果你用
调用你的iframe javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(VARİABLES,,true,,false,) 在服务器端,您可以再次拥有 src=""