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
Freigeben: 2024-10-19 12:25:30
Original
365 Leute haben es durchsucht

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>
Nach dem Login kopieren

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!

Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage