Supportnet Computer
Planet of Tech

Supportnet / Forum / Skripte(PHP,ASP,Perl...)

JavaScript im IE per VBA ausführen





Frage

Hat jemand eine Idee, mit welchem Befehl ein JavaScript im Internet Explorer per VBA ausgeführt werden kann? MANY THX

Antwort 1 von Kalim

Probier mal so:

Set ie = CreateObject("InternetExplorer.Application")
ie.visible = True
ie.navigate ("http://localhost/javascript.htm")


Antwort 2 von AlfredHitschkock

Hallo Kalim,

vielen herzlichen Dank für Deine Antwort. Leider konnte ich mit Deinem Tipp keinen Erfolg erzielen. Das JavaScript hat folgendes Format (laut Statuszeile des Internet Explorers):

javascript:MachEtwas()

oder

javascript:MachEtwasAnderes().

Habe zig Varianten versucht, irgendwie über ´localhost´ das Script auszuführen...habe aber inzwischen das Gefühl, dass ich mich auf dem Holzweg befinde, der sich wiederum auf dem falschen Dampfer befindet...

Gravierend ist sicherlich, dass in Deinem Vorschlag "*.htm" angesteuert wird. Da mein JavaScript aber mit einem Klammernpaar endet (Funktion?) komme ich mit dieser Syntax wahrscheinlich nicht weiter...?

Weder über Google, andere Suchmaschinen oder MS Seiten konnte ich verwertbare Infromationen zu dem Thema ´JavaScrip über VBA ausführen/starten´ finden - weder auf Deutsch noch auf Englisch.

Bin für jede Hilfe dankbar - besonder auch für Hinweise auf eine Informationsquelle zu diesem Thema.

Nochmals vielen Dank, Kalim

Gruß
AlfredHitschkock

Antwort 3 von Kalim

Hi AlfredHitschkock!

Was ich da gepostet habe, war nur, wie man allgemein den IE dazu bringt, eine Datei anzuzeigen. Ich war davon ausgegangen, daß Dein Skript in einer HTML-Datei steckt und automatisch gestartet wird.
Was Du jetzt gepostet hast, verwirrt mich ein wenig. Kann es sein, daß Du nur ein HTML-Dokument von einer fremden Webseite runtergeladen hast, in der ein Skript über einen Link aufgerufen wird und Du jetzt möchtest, daß Excel quasi diesen Link "anklickt"?
Dann müßte man diese Datei vielleicht so ändern, daß das Skript automatisch beim Anzeigen der HTML-Seite gestartet wird, anstatt erst durch den Linkaufruf.
Gib doch mal genauere Infos!

Gruß,
Kalim

Antwort 4 von AlfredHitschkock

Hallo Kalim!

Erst mal vielen Dank für Deine Mühe.
Folgendes spielt sich ab:

Ich erstelle in VBA (Excel oder Access) ein Object vom Typ ´Internet Explorer´ und navigiere zu einer LogIn-Seite im Internet. Zum Beispiel bei eBay folgendermaßen:

Dim appIE As New InternetExplorer
Set appIE = CreateObject("InternetExplorer.application")
appIE.Visible = True
appIE.navigate "http://signin.ebay.de" & _ "/ws2/eBayISAPI.dll?SignIn&UsingSSL=0&pUserId=&co_partnerId=2&siteid=77&ru=http%3A%2F%2Fmy.ebay.de%3A80%2Fws%2FeBayISAPI.dll%3FMyeBay&pageType=1883"

appIE.document.all.userid.Value = "username"
appIE.document.all("pass").innerText = "pass"
appIE.document.all.SignInForm.submit

Da, wo ich dann hingelange (also jetzt nicht bei eBay...) finden sich Links zur Administration von Firmendaten. Diese Links verweisen aber eben nicht auf eine .html , sondern (wie Du ganz gut beschrieben hast) wenn man mit der Maus drüberfährt, erkennt man in der Statusleiset des Browsert, dass auf ein JavaScript - oder besser gesagt auf eine JavaFunktion verwiesen wird. Zum Beispiel nach dem Muster: javascript:MachEtwas() . Diese Links (teilweise auch Bilder bzw. gifs) sind nur leider, wie ich inzwischen herausgefunden habe, nicht Bestandteil der geladenen .html-Seite, sondern werden über .xml Dateien dynamisch in die Webseite eingebunden. Ich kann also im Explorer-Object nicht das KlickEreignis auf die gifs abfeuern oder etwas in der Richtung. Obwohl ich doch beim wahrhaftigen Klick auf den Link auch nichts anderes erreiche...hatte ich zumindest gedacht.

Wenn es eine VBA-Syntax gäbe wie z.B. appIE.RunJavaScript("MachEtwas()") oder so *grins* dann wäre mir geholfen....gibt es aber wohl nicht :-(

Mir ist sogar gelungen, die url der JavaScript Dateien (.js) zu bestimmen, in denen die JavaFunktionen gespeichert sind, die auf der WebSeite auftauchen. Wenn es nun vielleicht einen Weg gibt, die Funktionen der WebSeite gar nicht über die WebSeite selber, also über den vorgesehenen Link, sondern direkt über diese JavaScript-Dateien auszuführen.....

Das übersteig jedoch alles meine kaum vorhandenen Kenntnisse aus diesen Bereichen (html und java) so sehr, dass ich sogar Schwierigkeiten habe zu beschreiben was ich eigentlich mitteilen möchte.

Nochmals vielen Dank, Kalim, würde mich sehr freuen noch einmal von Dir zu lesen - von allen anderen natürlich auch.

Viele Grüße
AlfredHitschkock

Antwort 5 von Kalim

Hi AlfredHitschkock!

Leider krieg ich Deinen Code bei mir nicht zum Laufen. Probiere mal mit document.write den Funktionsaufruf direkt ins Dokument zu schreiben:
<script language="javascript">MachEtwas();</script>
Alternativ könntest Du auch ein bestehendes Objekt damit überschreiben z.B.:
appIE.document.body.innerHTML="<script language="javascript">MachEtwas();</script>"

Gruß,
Kalim

Antwort 6 von Kalim

Ups, kleines Prob mit Anführungszeichen:
appIE.document.body.innerHTML="<script language=´javascript´>MachEtwas();</script>"
So müßte es stimmen. Wie gesagt, ich kann es bei mir nicht testen. Bei mir kommen beim Zugriff auf das document-Objekt generell nur kryptische Fehlermeldungen in Excel..

Gruß,
Kalim

Antwort 7 von Kalim

Dieses Forum ist so *Z* verbugt! Nicht mal Code kann man hier posten. Das nervt mich langsam wie Schwein!
Bugs sind zum Beheben da, nicht zum Sammeln!!!!!!!!
http://rapidshare.de/files/2841741/sn.txt.html

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: