Bezdepbonusu7Программирование: статьи и ответы

Вопрос

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

Автор вопроса: zingaОтветов: 1

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

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

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

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

Спасибо

browservba

Ответы

Ответ 1 · zinga

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

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

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы