Möchten Sie eine Funktion aufrufen, wenn iframe nicht lädt oder lädt?

8

Ich habe eine iframe in meiner Seite. Wenn das iframe nicht geladen wird, möchte es alert die Nachricht " pdf nicht gefunden " und wenn iframe geladen wird, sollte alert " pdf geöffnet werden ".

Weiß jemand, wie man das erreicht?

    
Kunal Vashist 02.03.2012, 13:20
quelle

2 Antworten

9

Die Idee besteht also darin, eine Ajax-Anfrage zu verwenden, um die URL "zu testen". Ajax-Requests ermöglichen das Binden von "success" - und "error" -Handlern - im Gegensatz zu <iframe> -Elementen, die nur einen "load" -Handler bereitstellen.

Selbstverständlich sind Ajax-Anfragen durch die gleiche Ursprungs-Richtlinie eingeschränkt (es sei denn, der Webserver aktiviert CORS), aber Sie haben angegeben, dass sich die PDF-Datei in derselben Domain befindet, sodass keine Probleme auftreten sollten.

>

Sie haben auch angegeben, dass Sie die Mootools-Bibliothek verwenden - ich benutze jQuery, also kann ich Ihnen nur eine jQuery-Lösung anbieten, aber da wir eine einfache Ajax-Anfrage mit "success" - und "error" -Handlern machen, Sie sollten in der Lage sein, eine Mootools-Lösung basierend auf meiner jQuery-Lösung einfach neu zu erstellen.

Also, mit einem iframe und einer URL:

%Vor%

Die Ajax-Anfrage:

%Vor%

Erfolg-Demo: Ссылка
Fehler-Demo: Ссылка

Wenn also die Ajax-Anfrage ein "Fehler" -Ereignis auslöst, warnen wir die "Nicht gefunden" -Meldung sofort. Wenn jedoch die Ajax-Anfrage ein "Erfolg" -Ereignis auslöst, weisen wir unserem IFRAME-Element einen "Lade" -Handler zu (dieser "Lade" -Handler alarmiert schließlich die "Geladen" -Nachricht) und setzt die URL auf seine src Eigenschaft manuell.

    
Šime Vidas 06.03.2012, 00:23
quelle
-2

Sie können diesen Code einfach in Ihren iframe einfügen, wenn er geladen ist:

%Vor%

Und in deiner oberen Seite:

%Vor%

Wenn Ihre Callback-Funktion nicht nach 30 Sekunden aufgerufen wird, können Sie sagen, dass Ihre PDF nicht geladen ist.

Bearbeiten: Ihre erste Datei (mit dem iframe):

%Vor%

Die zweite (PHP-Datei):

%Vor%

Vergessen Sie nicht, das $ _GET ['f']

zu sichern     
akiavara 02.03.2012 13:28
quelle

Tags und Links