Heim >Web-Frontend >js-Tutorial >Wie führe ich einen Rückruf aus, wenn ein IFRAME ohne direkten Zugriff auf Inhalte domänenübergreifend geladen wird?

Wie führe ich einen Rückruf aus, wenn ein IFRAME ohne direkten Zugriff auf Inhalte domänenübergreifend geladen wird?

DDD
DDDOriginal
2024-10-19 12:25:30304Durchsuche

How to Execute a Callback When an IFRAME Finishes Loading Across Domains Without Direct Content Access?

Domainübergreifender IFRAME-Laderückruf

Sie müssen einen Rückruf ausführen, wenn ein IFRAME vollständig geladen wurde, ohne direkten Zugriff auf den IFRAME-Inhalt .

Lösung mit Timeout

Wie in der bereitgestellten Antwort erwähnt, ist der Zugriff auf den IFRAME-Body möglich, wenn sich die URL in derselben Domain befindet. Um das Problem zu beheben, dass der Rückruf keine Daten enthält, versuchen Sie, den IFRAME mithilfe einer Zeitüberschreitung zu entfernen:

<code class="javascript">$('#myUniqueID').load(function () {
  if (typeof callback == 'function') {
    callback($('body', this.contentWindow.document).html());
  }
  setTimeout(function () {$('#frameId').remove();}, 50);
});</code>

Dieser Ansatz verzögert die Entfernung des IFRAME, sodass der Rückruf Daten abrufen kann, bevor das Element zerstört wird.

Das obige ist der detaillierte Inhalt vonWie führe ich einen Rückruf aus, wenn ein IFRAME ohne direkten Zugriff auf Inhalte domänenübergreifend geladen wird?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn