javascript - iframe src动态




没有src属性的iframe (6)

IMO:如果你没有放src,你的页面将无法验证。 但是关于它。 如果你输入src =“”,你的服务器将记录许多404错误。

在“破坏性”中没有什么是真正的错误。 但那么,使用iframe本身并没有错吗?

° -

我想在页面上创建一个<iframe> ,但稍后再添加src 。 如果我创建一个没有src属性的iframe,那么它会在某些浏览器中加载当前页面。 为src设置的正确值是什么,只是加载一个空白的iframe?

我看到的答案是:

  • about:blank
  • javascript:false
  • javascript:void(0)
  • javascript:"";
  • url到空白页面

有明显的赢家吗? 如果没有,有什么权衡?

我希望在IE6以后的所有浏览器中都没有针对HTTPS网址的混合内容警告,也没有任何后退按钮,历史记录或重新加载奇怪的内容。


javascript:false
IE10和FF(在Linux中的v23中检查)将显示“false”作为内容。

javascript:void(0) && javascript:;
IE将在iframe中显示“无法显示网页”错误。 此外,当将src从有效URL设置为javascript:void(0) ,页面将不会变为空白。

about:blank
适用于所有浏览器,但IE 9向服务器发送路径为“null”的请求。 IMO仍然是最好的选择

结帐http://jsfiddle.net/eybDj/1
结帐http://jsfiddle.net/sv_in/gRU3V/以查看iframe src如何使用JS更改动态更新


不确定所有浏览器是否支持“about:blank”,所以我只想使用您自己的空白页面。

另一个想法:为什么不使用javascript而不仅仅是src添加整个iframe?


关于什么

about:blank

是的,我知道我正在恢复旧的线索。 告我。 我对答案很感兴趣。

我不明白为什么将触发器作为表单提交会阻止动态创建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>





src