Объект ActiveX не определен

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?


person Hristo    schedule 23.06.2010    source источник
comment
У Юджина есть хорошее замечание - я почему-то предположил, что вы используете какой-то кастомный ActiveXObject. Вы ограничены этим объектом XmlHttp?   -  person Georg Fritzsche    schedule 24.06.2010


Ответы (2)


Я не веб-парень, но похоже, что на ваших веб-страницах используется 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; 
    }
  }
}
person Eugene    schedule 24.06.2010
comment
Похоже, что ошибка исчезла, но появилась другая, где позже в коде есть xmlhttp.Open("GET", PageURL, false); - person Hristo; 24.06.2010

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

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

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

person Georg Fritzsche    schedule 23.06.2010
comment
:) Мне все равно, если ваше мнение необъективно :) FireBreath кажется классным проектом, и я рассмотрю его более подробно. Спасибо за ответ ... Мне нужно кое-что почитать. - person Hristo; 23.06.2010
comment
.. Я создал проект плагина для Mac и пытаюсь протестировать плагин, но Firefox сообщает мне, что мне нужно установить недостающие плагины. Он сообщает мне, что подходящие плагины не найдены, так как мне заставить мой плагин работать с firefox? - person Hristo; 24.06.2010
comment
@Hristo: Вы установили MyProject.plugin, например положить в ~/Library/Internet\ Plug-Ins/? Если вы не возражаете против групп Google, список рассылки fb-dev доставит вам довольно быстрые ответы от большего количества людей, чем я :) - person Georg Fritzsche; 24.06.2010
comment
Я смотрел вики в группе Google, должно быть, пропустил часть, помещающую ее в часть ~ / Library / .... Спасибо! - person Hristo; 24.06.2010