Iframe kurz vor dem Entladeereignis

Lesezeit: 1 Minute

Ich muss ein Ereignis erfassen, das ausgelöst werden soll, kurz bevor der Inhalt des Iframes verschwindet.

Ich habe versucht, so etwas zu erreichen

$iframe = $('iframe');
$iframe.beforeunload(function () {
  debugger;
});

ODER

$iframe = $('iframe');
$iframe.unload(function () {
  debugger;
});

Ich habe sogar erfolglos versucht, es an das Iframe-Fenster selbst zu binden

$iframe = $('iframe');
$iframe[0].contentWindow.onunload = function () {
  debugger;
};

Keiner dieser Eventhandler löst bei mir tatsächlich aus

und ich bin ziemlich verwirrt warum. Zum Neuladen verwende ich den Iframe .reload() Von außerhalb des Iframes und von innen muss ich möglicherweise eine andere Methode verwenden?

  • Wie wäre es mit: $iframe = $(‘iframe’)[0];

    – Lanze

    8. Juni 2015 um 20:58

  • Dann: $iframe.contentWindow.onunload = function …

    – Lanze

    8. Juni 2015 um 20:58

  • Hmm, das sollte die Äquivalenz sein: $iframe[0].contentWindow.onunload

    – max

    8. Juni 2015 um 21:00 Uhr

  • Ja, würde man meinen, aber ich habe schon dümmere Dinge gesehen …

    – Lanze

    8. Juni 2015 um 21:06

Herausgefunden! Das wusste ich nicht contentWindow verliert nach einem Neuladen seine Referenz.

$iframe.load(function () {
  $iframe[0].contentWindow.onbeforeunload = function () {
    debugger;
  };
});

  • Bei modernen Versionen von jQuery (3.x) müssten Sie dies ändern $iframe.on( 'load', function(){ ... } );

    – Miguel Sánchez Villafán

    11. November 2020 um 1:50

1451600cookie-checkIframe kurz vor dem Entladeereignis

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy