【问题标题】:When does a web browser request the src content of a dynamically created iframe?Web 浏览器何时请求动态创建的 iframe 的 src 内容?
【发布时间】:2012-05-14 08:09:50
【问题描述】:
假设我使用 js 动态创建一个 iframe 节点,然后设置 src 属性 (1),最后将该节点附加到 DOM (2)。
浏览器何时请求 src 内容?在(1)之后?在(2)之后?或者它是不可预测的?是否取决于浏览器?
【问题讨论】:
标签:
javascript
html
dom
iframe
【解决方案2】:
在 (2) 之后。在此之前,它只是 JS。在它附加到 DOM 之前,浏览器不会对其进行操作。
【解决方案3】:
好吧,我不会为你测试每个浏览器,但我总是希望具有 src 和 href 属性的元素链接到或加载某种内容,在它们实际附加后总是加载,因为何时/何地iframe 或 js 文件落在文档中,涉及大量安全性和一般实现问题。对于浏览器供应商而言,以任何其他方式来做这将是严重的失败,我可以看到一个事实,chrome 通过一些实验就可以做到这一点。
我能想到的唯一例外是可以在插入之前加载的图像。
【解决方案4】:
根据我的经验,将节点添加到 DOM 时总是如此。您可以加载 Firebug 或其他一些开发控制台,并查看何时发生这种情况。抛出几个警报来确定时间是这样的:
<script type="text/javascript">
ifrm = document.createElement("IFRAME");
ifrm.setAttribute("src", "http://blah.com/");
alert('SRC SET');
ifrm.style.width = 640+"px";
ifrm.style.height = 480+"px";
document.body.appendChild(ifrm);
alert('ADDED TO DOM');
</script>
运行类似的操作并观察 Firebug 中的“网络”选项卡以查看何时请求该页面。我相信只有在调用 appendChild 之后才会请求它。