Можно ли определить, установлен ли на клиенте определенный элемент управления ActiveX? - PullRequest
0 голосов
/ 13 марта 2009

У меня есть веб-сайт ASP.Net, который передает файлы изображений клиенту. Из-за дурацких потребностей нашей разноплановой пользовательской базы некоторые клиентские рабочие станции имеют компонент ActiveX, который им необходимо использовать на этом веб-сайте для манипулирования этим образом, но из-за стоимости не все пользователи имеют этот элемент управления. То, что я хотел бы сделать, это определить, установлен ли на клиенте этот элемент управления ActiveX, а затем выполнить сценарий тега на основе результатов этого теста.

Я тщательно изучал объект Request и не нашел ничего, что бы делало именно то, что мне нужно. Request.Browser.ActiveXControls приятно знать, но мне нужно углубиться в детали. Есть ли другое пространство имен, на которое я должен смотреть? Это вообще возможно?

Заранее спасибо.

1 Ответ

5 голосов
/ 13 марта 2009

Нельзя запрашивать доступность ActiveX на стороне сервера. Даже флаг Browser.ActiveXControls является догадкой из строки UA, которая может быть ошибочной.

Все, что вы можете сделать, это попытаться создать экземпляр объекта из JavaScript и выполнить действия на стороне клиента в зависимости от этого:

var obj;
try {
    obj= new ActiveXObject('Control.ProgID');
} catch (e) {
    obj= null;
}
if (obj) {
    doActiveXEnhancedVersionOfPageThings();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...