Почему не загружается элемент управления Javascript в размещенном веб-браузере? - PullRequest
2 голосов
/ 17 июня 2009

К сожалению, мы вынуждены использовать элемент управления JavaScript, предназначенный для веб-страницы, в нашем настольном приложении Windows. Для этого мы размещаем Internet Explorer внутри нашего приложения и просим его перейти на локальную веб-страницу. Затем мы получаем интерфейс IDispatch механизма сценариев и используем его для взаимодействия с элементом управления. Веб-страница выглядит примерно так:

<html>
  <head>
    <script src="third party website url" type="text/javascript"></script>
  </head>
  <body onload="OurApp.OnLoad()">
  </body>
</html>

(для ясности я опустил некоторые теги и атрибуты.) Мы добавляем объект "OurApp" в пространство имен обработчика сценариев. Это интерфейс IDispatch, который позволяет скрипту перезванивать в наше приложение. В методе OnLoad () нашего приложения мы создаем различные объекты JavaScript, определенные элементом управления.

Проблема: В 99% случаев эта установка прекрасно работает. К сожалению, на некоторых клиентских машинах наш метод OnLoad () не может найти ни одного из ожидаемых методов в обработчике сценариев. Это похоже на то, что JavaScript с веб-сайта третьей стороны либо не загружается, либо не запускается. Для многих клиентов мы решили проблему, изменив настройки безопасности в Internet Explorer. Но теперь у нас есть клиенты, у которых настройки безопасности кажутся правильными, но мы все еще сталкиваемся с проблемой.

В качестве дополнительной складки, если я создаю веб-страницу, как указано выше, и заказчик открывает ее на своем компьютере, он получает всплывающую панель с просьбой авторизовать активный контент, а затем все работает нормально, как только он соглашается. (На этой странице я заменил вызов OurApp.OnLoad () на некоторый JavaScript, который делает то же самое.) Это то же самое поведение, которое я наблюдаю на моей машине, но наше приложение здесь работает нормально. Мы не получаем никаких сообщений об ошибках на компьютере клиента (хотя, возможно, мы просто не ищем в нужных местах).

Итак, я в тупике. Любые мысли или предложения будут с благодарностью.

Обновление Нам наконец удалось решить проблему. Проблема заключалась в том, что мы передавали неподдерживаемый язык на сторонний веб-сайт. В этом случае они возвращались в виде пустого сценария вместо близкого совпадения или разумного значения по умолчанию.

Ответы [ 2 ]

2 голосов
/ 18 июня 2009

Возможно, вы захотите внедрить свой собственный менеджер безопасности:

http://msdn.microsoft.com/en-us/library/ms537182(VS.85).aspx

2 голосов
/ 17 июня 2009

Трудно быть на 100% уверенным, в чем проблема, но если бы я догадался, я бы сказал, что это, вероятно, связано с тем, что ИТ-отделы клиентов блокируют свои машины с помощью определенных политик безопасности, прокси-серверов и тому подобного. Обсуждали ли вы эти проблемы с ИТ-отделом клиентов, которые сталкиваются с этой проблемой?

Вы подключаетесь к удаленной странице через порт, отличный от: 80 в размещенном элементе управления IE? Я не знаю много, но IE COM, но возможно ли программно получать ошибки, предупреждения и тому подобное?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...