Включить Javascript для локальных файлов в VBA WebBrowser Control

Меня несколько озадачивает то, что IE7 включает Javascript по умолчанию в зоне Интернета, но отключает его для локальных HTML-файлов [зона Мой компьютер] (Интернет теперь более безопасен, чем ваш локальный компьютер?), но в любом случае...

У меня есть приложение в VBA, использующее элемент управления WebBrowser для открытия локального HTML-файла (скажем, file:///C:\somefile.html), в котором есть Javascript. Я хотел бы, чтобы этот Javascript был выполнен. Есть ли способ (из кода VBA) заставить браузер разрешить этот Javascript? (учитывая, что по умолчанию он отключен)

Было бы идеально, если бы мне не приходилось полагаться на какое-либо редактирование реестра или сообщать пользователю приложения об изменении настроек Internet Explorer. Я также попытался настроить локальный веб-сервер и обслуживать файл оттуда. Очевидно, работает отлично, поскольку IE считает это зоной Интернета, но мне бы хотелось, чтобы мне также не приходилось пытаться кодировать веб-сервер из VBA.

Система Windows XP с IE7.

Спасибо


person zinga    schedule 10.02.2011    source источник


Ответы (1)


Хорошо, возможно, это не «настоящее» решение, но для моих нужд этого достаточно. Можно использовать функцию WebBrowser.Document.parentWindow.execScript для внедрения Javascript на страницу. Я предполагаю, что здесь можно реализовать что-то похожее на функцию evalScripts в Prototype, чтобы она эффективно оценивает любые скрипты на странице. Может потребоваться перепроверить, что сценарии еще не разрешены потенциально другими настройками безопасности. Я не знаю, как это влияет на связанные файлы сценариев.

(для моего собственного приложения я управляю файлом HTML, поэтому я просто извлекаю весь Javascript в отдельный файл и выполняю его, используя описанный выше метод).

person zinga    schedule 10.02.2011