Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 空的iframe src有效吗?_Javascript_Html_Css_Iframe - Fatal编程技术网

Javascript 空的iframe src有效吗?

Javascript 空的iframe src有效吗?,javascript,html,css,iframe,Javascript,Html,Css,Iframe,我希望iframe最初将src设置为空白,然后在页面加载之后;调用JS函数,然后将src值设置为实际值 那么,是否有效,或者我是否需要使用类似于javascript:等仅否,指定空iframe src无效。 您应该使用 #是对当前页面中锚的引用(或者,在处理AJAX请求时经常用作路由方案)。使用它作为iframe的源是毫无意义的,因为iframe不引用当前页面上的内容,也不用于AJAX请求 about:blank是显示空白文档的跨浏览器标准 2012年6月8日更新: 如果缺少src属性,则似乎不

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

那么,
是否有效,或者我是否需要使用类似于
javascript:

否,指定空iframe src无效。

您应该使用

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

about:blank
是显示空白文档的跨浏览器标准

2012年6月8日更新:

如果缺少
src
属性,则似乎不再使iframe无效:

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


但是,如果未设置这两个属性,则浏览上下文将默认为
about:blank
。为了提供适当的向后兼容性,建议使用详细的内容,目前,请提供
about:blank
URL。

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

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

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

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

根据,有效的URL必须以a开头,并且相对引用不能仅包含在a中

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


改为使用。

您可以尝试通过Javascript添加iframe,这样您就不需要在HTML中使用空白的iframe:

(jQuery示例)


$().ready(函数()){
$(“”).attr(“src”http://www.bbc.co.uk/)的附录(“正文”);
});

使用Javascript添加iframe允许优雅的降级-没有Javascript的用户不会看到空白的iframe。

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

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


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

关于:blank返回媒体类型为的空白HTML文档 文本/html和字符编码UTF-8。这被广泛用于加载 将空白页面转换为浏览上下文,例如HTML中的iFrame,这 然后可以通过脚本进行修改。

记录在案

让我们来看下一个例子(Firefox58,但可能在所有浏览器中都有)


Iframe在css之前加载,因此页面的呈现在css加载之前可见。也就是说,在一瞬间,页面看起来没有css

相反:

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


它工作正常,css被加载,iframe最终被加载。

如果您不想使用
about:blank
,您可以使用javascript作为
iframe
src
,如下示例:

<iframe name="TV" id="tv" style="width:100%; background: #800000" src="javascript:document.write('<h3>Results Window</h3>')"></iframe>

上面的示例将初始化一个褐红色背景的
iframe
,该背景有一个简单的消息
结果窗口
。但是,链接的目标应该等于
iframe
name
属性,即在该示例中
TV

注意: 某些外部网站可能会阻止从其他来源请求其页面。例如,尝试将下面示例中的超链接的URL更改为
yahoo.com
google.com
,然后签出浏览器的控制台


如果你用
调用你的iframe
javascript:WebForm_DoPostBackWithOptions(新的WebForm_PostBackOptions(VARİABLES、true、false))

在服务器端,您可以再次使用src=“”

我到处都能看到
about:blank
。我相信如果你省略
src
属性,浏览器默认为
about:blank
。如果你将
src
保留为空,浏览器就会发现。并非所有浏览器都有
about:blank
@Jim,在安全页面中省略
src
属性将触发在某些版本的Internet Explorer中出现了臭名昭著的“此页面包含安全和不安全项”消息。我刚刚发现jQuery将两次触发document ready事件,因为#作为src。我花了很长时间才发现;-)src='about:blank'在所有主要浏览器中都有效吗…例如7/8、FF、Safari、Chrome、,ETC IE 9使用src=“about:blank”:(@powtac是否使用src=“”执行相同操作)向服务器发送路径为“null”的请求?否,有效的非空URL必须是RFC3986第4.1节定义的有效URI引用,而不一定是有效的URI。否则,您不能将相对URL用作iframe src,这显然是胡说八道。@Mike,您是对的,
#
也是无效的相对引用。答案相应更新。Javascript:URI valid?如下所示:作为旁注,如果使用
#
作为src值,Chrome将“跳转”页面到iframe。想象一下
<link href="css.css" rel="stylesheet" type="text/css"/>
<iframe src='blank.html'></iframe>
<iframe name="TV" id="tv" style="width:100%; background: #800000" src="javascript:document.write('<h3>Results Window</h3>')"></iframe>