检查元素是否已加载

Flo*_*ler 5 jquery events dom loading

我有一个站点和该站点中的 iFrame,以及许多其他内容(图像等)。

现在我使用 jQuery$(document).ready(function() { ... });来执行代码。在该代码中,我试图操作 iFrame 中的内容。但是,我必须确保加载 iFrame 才能执行代码。

iFrame 通常在代码执行的同时加载,所以它有时会失败,有时不会。

如果我使用$('#iframe').load(function(){ });,该事件并不总是执行,因为在那一刻我附加了加载侦听器,iFrame 可能已经完成加载,并且加载事件不会再次执行。如果我把它放在一边,元素有时还不存在(代码执行得太早)。

所以我想要实现的是这样的:

if iFrame is already loaded
  -- execute code 
else 
  -- $('#iframe').load(function() { /*execute code*/ });
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法可以在不使用脏超时的情况下实现这一目标?或者如果使用这种方法,是否有一个函数可以检查元素是否已经加载?

Roa*_*888 3

确保在设置$('#iframe').load(function(){ });iFrame 之前执行该操作。src

要实现此目的,请从 javascript 设置src,而不是在 HTML 中。

此外,加载顺序在这里也很重要。如果您的 jQuery 的整体包装器是jQuery(window).load(function() {...}),则行为将与 给出的行为不同jQuery(function() {...})