PopUp verhindert automatisches Schließen eines Browser-Fensters

Jedimaster

Mitglied
Hallo zusammen!

Wie in meinem vorletzten Post ja bereits beschrieben befülle ich mittels VBA automatisiert ein HTML-Formular und möchte die Seite nach dem Absenden auch wieder schließen. Leider funktioniert das nicht völlig automatisch, denn sobald ich

Code:
IEBrowser.Quit
aufrufe, kommt leider folgendes Popup, welches sich nur manuell schließen läßt:

The Web Page you are viewing is trying to close the window.

Do you want to close this window?


Nun habe ich irgendwo gelesen, daß dieses Popup wohl nicht auftreten soll, wenn das Fenster per JS geschloßen wird. Also probierte ich es mit:

Code:
IEBrowser.Document.forms(0).closeButton.Click

Hinter dem onclick-Event des Buttons liegt
Code:
window.close()

Leider tritt aber auch hier das Popup in den Vordergrund und verhindert ein Schließen des Fensters.

Hat jemand eine Idee, wie das Popup - evtl. auch durch Sicherheitseinstellungen - unterdrückt werden kann, um den automatisierten Prozess nicht zu unterbrechen?


Viele Grüße,
JediMaster
 
Diese Meldung kommt immer dann, wenn du ein Fenster per Skript schliessen willst, welches nicht per Skript(window.open()) geöffnet wurde.

Abhilfe: fällt mir keine ein, hast du mal etwas mehr Code...wie erzeugst du die IE-Instanz?
Normalerweise lässt sich so ein Browser nämlich problemlos schliessen... ich nehme mal an, das Problem ist, dass du ihn aus dem Dokument, welches dort geladen ist, schliessen willst.
Du solltest ihn von dortaus schliessen, wo du ihn auch erzeugt hast.
 
Hallo und guten Morgen Sven!

Danke für die Antwort. Das es an dem nicht verwendeten "window.open" liegt wußte ich nicht. Irgendwo habe ich jetzt sogar noch gelesen, daß es wohl immer dann geschehen soll, daß sich das Fenster nicht ohne Popup schließen läßt, wenn das Fenster eine history bekommen hat. Aber bei meinem Problem bin ich dennoch etwas ratlos..

Ich erzeuge alles per VBA:

Code:
Set Browser = CreateObject("InternetExplorer.Application")
Browser.Navigate "http:// ..."

Do While Browser.Busy Or Browser.ReadyState <> READYSTATE_COMPLETE
        DoEvents
Loop
     
        Browser.Document.forms(0).feld1.Value = wert1
        Browser.Document.forms(0).feld2.Value = wert2
        Browser.Document.forms(0).SubmitButton.Click

        Browser.Document.Close
        Browser.Quit

Das Problem liegt scheinbar doch nicht direkt am Popup, denn es passiert folgendes:

Wenn ich alles komplett in einem Rutsch durchlaufen lasse, dauert es nur einen kurzen Augenblick, daß das Browserfenster aufflackert und wieder zu geht - das Popup stört da nicht. Das, was allerdings gesendet werden soll, wird dann aber offensichtlich nicht gesendet, da ich eine Bestätigung von Erfolg oder Mißerfolg separat dazu aus einer DB auslesen kann.

Wenn ich jedoch vor dem Schließen einen Haltepunkt setze, sehe ich wie sich das besagte Popup vor die inzwischen weitergesprungene Seite gesetzt hat. Das heißt von meinem ursprünglichen Formular werde ich weitergeleitet - ohne in meinem Formular ein target o.ä. angegeben zu haben, was mich im Übrigen schon sehr wundert - zu einer vom Server erzeugten Seite, welche mir in HTML eine Erfolgsmeldung ausgibt, daß mein Abschicken der Daten erfolgreich war, was ich dann auch wirklich erst verifizieren kann.

Ich bin nun recht ratlos, warum das automatische Füllen und Absenden dann aber schief läuft. Meine erste Vermutung war ja, daß das Problem durch das Popup herbeigeführt wird, aber da habe ich mich wohl geirrt. Das erste Problem, als das Popup beim automatisierten Lauf störte, lag sicher ein meinem inzwischen umgestalteten Coding.


Viele Grüße,
JM

PS:

Ich glaube so richtig paßt meine Frage nun gar nicht mehr in den Javascript-Bereich, oder? JS verwende ich an keiner Stelle, vielleicht ist es eine VBA, ActiveX oder DOM-Angelegenheit? Sollte ich evtl. einen neuen Thread in einem dieser Bereiche aufmachen?
 

Neue Beiträge

Zurück