我想在页面上创建<iframe>
,但稍后再添加src
。如果我创建一个没有src
属性的iframe,那么它会在某些浏览器中加载当前页面。为src
设置的正确值是什么,以便只加载空白iframe?
我见过的答案是:
about:blank
javascript:false
javascript:void(0)
javascript:"";
有明显的赢家吗?如果没有,有什么权衡?
我希望在IE6以后的所有浏览器中都没有针对HTTPS网址的混合内容警告,也没有任何后退按钮,历史记录或重新加载奇怪的内容。
答案 0 :(得分:10)
不确定所有浏览器是否支持“about:blank”,所以我只想使用您自己的空白页。
另一个想法:为什么不使用javascript而不仅仅是src添加整个iframe?
答案 1 :(得分:7)
创建“空”iframe(例如iframe垫片)时的标准方法是将src设置为javascript:false;
。这是为您创建iframe填充程序的大多数JavaScript库使用的方法(例如YUI的覆盖)。
答案 2 :(得分:6)
重新发表评论,澄清您计划将iframe用作表单提交的目标:
我会在发送回204 no content
的服务器上使用空文档。
避免
javascript:
协议它也是有效的HTML。
那么如果它产生一个额外的请求怎么办?正确设置缓存标头,每个客户端只有一个请求。
答案 3 :(得分:5)
怎么样?
about:blank
答案 4 :(得分:2)
javascript:false
:
IE10和FF(在Linux中的v23中检查)将显示“false”作为内容。
javascript:void(0)
&amp;&amp; javascript:;
:
IE将在iframe中显示“无法显示网页”错误。此外,将src从有效网址设置为javascript:void(0)
时,页面也不会显示为空白。
about:blank
:
适用于所有浏览器,但IE 9向服务器发送路径为“null”的请求。仍然是IMO最好的选择
结帐http://jsfiddle.net/eybDj/1
结帐http://jsfiddle.net/sv_in/gRU3V/以查看iframe src如何使用JS
答案 5 :(得分:1)
javascript:false
适用于现代浏览器。
我看到的是,当哑巴蜘蛛试图将javascript:false
作为页面加载时,这只会“失败”。
解决方案:阻止愚蠢的蜘蛛。
答案 6 :(得分:1)
正如我在此问题中发布的那样:Is an empty iframe src valid?,完全省略src=
属性似乎是可以接受的。
答案 7 :(得分:0)
IMO:如果您没有放置src,您的页面将无法验证。但是关于它。 如果你输入src =“”,你的服务器将记录许多404错误。
在“破坏性”中没有什么是真正的错误。但是,使用iframe本身并没有错吗?
° -
答案 8 :(得分:0)
是的,我知道我正在恢复一个旧线程。起诉我。我对答案感兴趣。
我不明白为什么将触发器作为表单提交会阻止动态创建IFrame。这不是你想做的吗?
<html>
<head>
<script type="text/javascript">
function setIFrame(elemName, target, width, height) {
document.getElementById(elemName).innerHTML="<iframe width="+width+" height="+height+" src='"+target+"'></iframe>";
}
</script>
</head>
<body>
<div id="iframe" style="width:400px; height:200px"></div>
<form onSubmit="setIFrame('iframe', 'http://www.google.com', 400, 200); return false;">
<input type="submit" value="Set IFrame"/>
</form>
</body>
</html>
答案 9 :(得分:0)
我遇到了这一行代码:
iframe.setAttribute("src", "javascript:false");
也是。我想删除javascript:URL
。
在Web超文本应用程序技术工作组中找到此注释[2019年10月2日更新]
iframe或frame元素的其他步骤如下:
如果元素未指定src属性,或者其值为 空字符串,以url为网址“ about:blank”。