Google-Suchen führen mich mit diesem einen Haufen Sackgassen runter.
Ich entwickle ein Excel-Add-In in VBA, und ein Teil davon beinhaltet die Verwendung des WebBrowser-Steuerelements, um eine (bekannte) Webseite in einem Formular anzuzeigen und auf seine DOM-Komponenten zuzugreifen.
Leider überlässt das mich der Benutzerversion des Internet Explorers.
Für unsere aktuellen Webseiten können wir die Chrome Frame-Unterstützung verwenden, damit IE-Benutzer die Seite so sehen können, wie wir beabsichtigen, ohne sich um ihre Browserversion kümmern zu müssen. Das WebBrowser-Steuerelement sieht jedoch die Browser-Plugins nicht.
Ich habe mir WebKit.NET und GeckoFX angesehen. Sie arbeiten irgendwie, aber wenn ich etwas nicht komplett vermisse, scheinen sie überhaupt keine Javascript- oder CSS-Engines zu haben. Oder (im Fall von GeckoFX) benutzen sie alte Motoren. Das macht sie nutzlos.
Gibt es ein ActiveX-Steuerelement, das ich in ein VBA-Formular einbetten kann, das wie das WebBrowser-Steuerelement funktioniert (mit einer ähnlichen - wenn nicht identischen - API), eine andere Rendering-Engine verwendet, die mit der neuesten Version von Mozilla / Chrome / Opera und unterstützt immer noch korrekt Javascript und CSS?
Danke!
(Einige Änderungen basierend auf den Kommentaren)
EDITIERT WIEDER: Ich habe aus einer Antwort unten herausgefunden, dass ich eine veraltete Version von GeckoFX gesehen habe, aber die neueste Version sieht vielversprechend aus. Aber jetzt habe ich eine neue verwandte Frage: Wie schließe ich GeckoFX in VBA ein? Windows erlaubt mir nicht, es als ein COM-Objekt zu registrieren. Muss ich es irgendwie aus der Quelle bauen? Oder was?
Wenn Sie möchten, dass es in älteren VBA funktioniert, benötigen Sie einen Browser in einem ActiveX-Wrapper.
Das Mozilla ActiveX Control würde die Rechnung erfüllen, aber das scheint tot zu sein. (Es lebte in Mozilla Prism, jetzt Chromeless, aber das hat keinen Binärdownload. Und Sie können es anscheinend selbst aus der XULRunner-Quelle bauen, aber das ist wahrscheinlich nicht einfach.)
Es ist vielleicht nicht schwer, GeckoFX als ActiveX-Steuerelement zu erstellen.
Wenn Sie GeckoFX oder Chrome Frame verwenden, sind Sie der Firefox- oder Chrome-Version des Benutzers ausgeliefert. Sie können dieses Problem nur lösen, indem Sie eine Basisversion für Ihre Benutzer angeben.
Wenn Sie dies nicht tun können, schlage ich vor, dass Sie die Unterschiede in Ihrem VBA-Code umgehen.
Mit anderen Worten: Verwenden Sie das IE WebBrowser-Steuerelement, da es garantiert in der einen oder anderen Version installiert wird und entweder eine Mindestversion von IE angibt (ich empfehle IE6, die jeder haben sollte) und die Unterschiede durch Erkennung zu bewältigen die Version und arbeiten um die Unterschiede von VBA.
Tags und Links javascript vba webbrowser-control geckofx