Wie das abfangen und manipulieren von Internet Explorer popup mit VBA
Sprache/Software:
Die Sprache ist VBA. Die Anwendung ist Access 2003 (ich kann auch mit Excel) und Internet Explorer (unter Windows XP/Sieben).
Das problem:
Ich entwickle ein Access-makro öffnet und bearbeitet ein intranet-Website des Unternehmens, wo ich arbeite.
Kann ich neue IE-Fenster und füllen die Daten in den Formularen, aber ich muss in der Lage sein, abfangen und manipulieren andere IE-Fenster, wie popups, die sich öffnet, wenn ich auf einen link klicken, wenn ich wählen Sie eine option aus einem select-element oder, wenn die Seite geladen wird.
- Ist das popup modal? Können Sie weiterhin manipulieren hintergrund-Seiten, wenn das popup offen ist?
- Nein. Nachdem die pop-ups sind offen, ich kann immer noch Griff die Seiten, generiert die popups.
- Welche Art von pop-ups und was willst du mit Ihnen zu tun? ZB meinst du beim login ein neues Fenster öffnet?
- Zum Beispiel, die Art erzeugt, der die javascript-Funktion: "function popup(mylink, windowname) { if (! Fenster.focus)return true; var href; if (typeof(mylink) == 'string') href=mylink; else href=mylink.href; window.open(href, windowname, 'width=400,height=200,scrollbars=yes'); return false; }'. Mein Ziel ist, füllen Sie einige Formulare notwendig, einige schicken die Bestellanforderungen der Daten zu anderen Bereich im Unternehmen. Diese Bestellanforderungen sind sehr wichtig und ich bevorzuge es, zu vermeiden, die Eingabe manuell, um Fehler zu vermeiden.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist etwas code, den ich verwenden, um ein IE-Fenster aus dem Titel. Es ist aufgeteilt in zwei Funktionen, da einer meiner Benutzer hatte ein extrem seltsames problem, wo ein Fehler war, nicht erwischt zu werden, richtig. Möglicherweise (wahrscheinlich) in der Lage sein, den Körper zu bewegen, von der eigenen Funktion in der öffentlichen Funktion.
Darüber hinaus müssen Sie einen Verweis auf Microsoft Internet Controls (dies ist entweder shdocvw.dll oder ieframe.dll je nach Ihrer version von Windows) und ich würde empfehlen die Einstellung einen Verweis auf die Microsoft HTML Object Library, die es leichter machen, die zum Durchlaufen des DOM-nachdem Sie Ihre IE-Objekt.
Verwenden Sie den obigen code wie folgt:
Finden Sie ein Fenster aus, nahezu jede Eigenschaft des Fensters, oder es ist Dokument Inhalt. Wenn Sie kämpfen mit diesem, bitte kommentieren :).
pauseUntilIEReady oGetIEWindowFromTitle
weil es wirft eine Fehlermeldung für mich?Do While oGetIEWindowFromTitle.Busy
um zu blockieren die Ausführung von code, bis das Fenster steht für manipulation. Sie könnten auch versuchen, zu nehmen, dass line-out und sehen, ob das funktioniert für Sie.