Объект ActiveX не определен - PullRequest
2 голосов
/ 23 июня 2010

Firebug выдает мне следующую ошибку:

ActiveXObject is not defined
[Break on this error] var xmlhttp = new ActiveXObject("MSXML2.XmlHttp"); 

Я читал, что ActiveX является платформой Microsoft и в основном используется в IE. Все внутренние веб-страницы в месте, где я работаю, были спроектированы и созданы специально для IE 6, но теперь они хотят, чтобы я исследовал, что потребуется для перехода на Firefox и Safari и другие основные браузеры ... и ActiveX не работает Fire Fox.

Итак, как мне заставить ActiveX работать в Firefox и Safari, в частности на Mac (для начинающих)? Я знаю, есть пара плагинов? которые сделали вещи проще ... как FF ActiveX Host ... но есть ли программное решение для этого?

Если нет решения, нет плагина, для этой проблемы, возможно ли переписать части ActiveX в Java?

Ответы [ 2 ]

5 голосов
/ 24 июня 2010

Я не веб-парень, но кажется, что ваши веб-страницы используют AJAX.

Так что ваша проблема не в использовании AcitveX в других браузерах.

Попробуйте что-то вроде этого:

var xmlhttp;
if (window.XMLHttpRequest) {
  xmlhttp = new XMLHttpRequest();
} else {
  try { 
    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  } catch (e) {
    try { 
      xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (e) {
      xmlhttp = false; 
    }
  }
}
3 голосов
/ 23 июня 2010

Plugin-API почти во всех соответствующих браузерах, кроме IE, поддерживает NPAPI , см., Например, это введение .

Мне неизвестны какие-либо прозрачные программные решения для адаптации ActiveX, тем более что это технология только для Windows.

Альтернативой может быть проект FireBreath , который облегчает работу с NPAPI, а также предоставляет вам слой абстракции над NPAPI и ActiveX - идея заключается в том, что вам нужно писать большинство центральных частей только один раз.
Отказ от ответственности: я один из владельцев проекта и, таким образом, вероятно, предвзято;)

...