Элемент управления ActiveX не IE IE WebBrowser - PullRequest
8 голосов
/ 03 ноября 2011

Поиски в Google приводят меня в тупик с этим.
Я занимаюсь разработкой надстройки для Excel в VBA, и часть ее включает использование элемента управления WebBrowser для отображения (известной) веб-страницы внутри формы и доступа к ее компонентам DOM.

К сожалению, это оставляет меня в прихоти пользовательской версии Internet Explorer.
Для наших настоящих веб-страниц мы можем использовать поддержку Chrome Frame, чтобы пользователи IE могли видеть страницу так, как нам нужно, не беспокоясь об их версии браузера, но элемент управления WebBrowser не видит плагины браузера.

Я взглянул на WebKit.NET и GeckoFX. Они вроде работают, но если я чего-то не упускаю, у них, похоже, вообще нет движков Javascript или CSS. Или (в случае GeckoFX) они используют старые движки. Это делает их бесполезными.

Есть ли какой-либо элемент управления ActiveX, который я могу встроить в форму VBA, которая работает как элемент управления WebBrowser (с похожим, если не идентичным API), использует другой механизм рендеринга, который соответствует последней версии Mozilla / Chrome / Opera и до сих пор правильно поддерживает Javascript и CSS?

Спасибо!

(Некоторые правки основаны на комментариях)

ВНОВЬ ИЗДАНО: Из одного ответа ниже я узнал, что смотрю на устаревшую версию GeckoFX, но самая новая версия выглядит многообещающе. Но теперь у меня есть новый связанный вопрос: Как включить GeckoFX в VBA? Windows не позволяет мне зарегистрировать его как COM-объект. Нужно ли как-то самому строить из источника? Или что?

Ответы [ 3 ]

5 голосов
/ 08 ноября 2011

Gecokfx поддерживает Firefox до 33.0

https://bitbucket.org/geckofx/geckofx/wiki/Version_lists

Поддерживает как Javascript, так и CSS.

0 голосов
/ 11 ноября 2011

Если вы используете GeckoFX или Chrome Frame, вы будете зависеть от версии Firefox или Chrome пользователя.Нет способа решить эту проблему, кроме указания базовой версии для ваших пользователей.

Если вы не можете сделать это, я предлагаю вам обойти различия в коде VBA.

Другими словами: используйте элемент управления IE WebBrowser, поскольку он гарантированно будет установлен в какой-либо версии илидругой, либо укажите минимальную версию IE (я рекомендую IE6, которую должен иметь каждый) и справьтесь с различиями, обнаружив версию и обойдя отличия от VBA.

0 голосов
/ 09 ноября 2011

Если вы хотите, чтобы он работал в устаревшем VBA, вам нужен браузер в оболочке ActiveX.

Mozilla ActiveX Control будет соответствовать всем требованиям, но, похоже, он мертв. (Он жил в Mozilla Prism, теперь Chromeless, но у него нет бинарной загрузки. И вы, очевидно, можете собрать его самостоятельно из источника XULRunner, но это, вероятно, не так просто.)

Возможно, не сложно создать GeckoFX в качестве элемента управления ActiveX.

...