小编典典

捕获 iframe 加载完成事件

all

当 iframe 的内容从父页面完全加载时,有没有办法捕获?


阅读 94

收藏
2022-08-05

共1个答案

小编典典

<iframe>元素有一个 load 事件


您如何收听该事件取决于您,但通常最好的方法是:

1)以编程方式创建您的 iframe

它确保在 iframe 开始加载 之前load始终通过附加它来调用您的侦听器。 __

<script>
var iframe = document.createElement('iframe');
iframe.onload = function() { alert('myframe is loaded'); }; // before setting 'src'
iframe.src = '...'; 
document.body.appendChild(iframe); // add it to wherever you need it in the document
</script>

2) inline javascript ,是另一种可以在 HTML 标记中使用的方式。

<script>
function onMyFrameLoad() {
  alert('myframe is loaded');
};
</script>

<iframe id="myframe" src="..." onload="onMyFrameLoad(this)"></iframe>

3)您也可以 在元素之后 ,在<script>标签内附加事件侦听器,但请记住,在这种情况下,在您添加侦听器时 iframe
已经加载的可能性很小。因此它可能 不会 被调用(例如,如果 iframe 非常快,或者来自缓存)。

<iframe id="myframe" src="..."></iframe>

<script>
document.getElementById('myframe').onload = function() {
  alert('myframe is loaded');
};
</script>
2022-08-05