2010-02-03 1 views
0

Мы используем NameCtrl в нашем приложении и отлично работаем в IE. Но то же самое не работает в Firefox. Веб-сайт firefox говорит, что они не поддерживают элементы управления ActiveX. http://support.mozilla.com/en-US/kb/ActiveXFirefox: проблема присутствия Communicator

Есть ли способ показать присутствие коммуникатора в Firefox тоже?

ответ

0

NameCrl - это компонент ActiveX, поэтому он будет работать только в Internet Explorer.

Невозможно сделать это без специальной разработки. Я бы предложил использовать UCMA APis, создав службу, запрашивающую присутствие, и построил JavaScript API для вызова этой службы.

+0

Неверно. Пожалуйста, см. Мой ответ. –

1

Немного поздно, но это возможно с использованием браузеров, отличных от IE.

if(window.ActiveXObject) { 
    nameCtrl = new ActiveXObject("Name.NameCtrl"); 
} else { 
    try { 
     nameCtrl = new ActiveXObject("Name.NameCtrl"); 
    } catch (e){ 
     nameCtrl = (function(b){ 
      var c = null; 
      try { 
       c = document.getElementById(b); 
       if (!Boolean(c) && (Boolean(navigator.mimeTypes) && navigator.mimeTypes[b] && navigator.mimeTypes[b].enabledPlugin)) { 
        var a = document.createElement("object"); 
        a.id = b; 
        a.type = b; 
        a.width = "0"; 
        a.height = "0"; 
        a.style.setProperty("visibility", "hidden", ""); 
        document.body.appendChild(a); 
        c = document.getElementById(b) 
       } 
      } catch (d) { 
       c = null 
      } 
      return c 
     })("application/x-sharepoint-uc"); 
    } 
} 

if(nameCtrl && nameCtrl.PresenceEnabled){ 
// code here 
} 
+0

Это не работает для меня: http://stackoverflow.com/questions/30034488/firefox-skips-past-some-lines-of-javascript – Zarepheth

+0

Какой код должен быть написан в "if (nameCtrl && nameCtrl.PresenceEnabled) {" функция @ Андрю МакГивер –