Member 7946563 Ответов: 4

неперехваченная ошибка ссылки: activexobject не определен


Привет,

Я использую activexobject в своем проекте, он отлично работает в IE.

Я знаю, что это Microsoft control.
Я хочу запустить проект в Mozila и Chrome, но он показывает ошибку, так как Activexobject не определен.

var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");


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

4 Ответов

Рейтинг:
31

Manfred Rudolf Bihy

Несмотря на то, что вы полностью согласны с ответом JSOP, есть одна вещь, которую вы можете попробовать также запустить в FireFox. Существует плагин, который позволяет FireFox размещать элементы управления ActiveX. Видеть здесь: http://code.google.com/p/ff-activex-host/[^Вам придется немного поэкспериментировать, но, возможно, этот плагин поможет вам заставить его работать с FireFox. Для google chrome вас может заинтересовать эта ссылка: http://www.chromeplus.org/[^].

Однако по соображениям кроссбраузерной совместимости я настоятельно не рекомендую использовать ActiveX на веб-сайте.

с уважением,

- МРБ


Sergey Alexandrovich Kryukov

Вы должны быть правы, мой 5, но это не спасает концепцию ActiveX на стороне клиента (браузера). Для совместимости лучше всего никогда не использовать их.
--СА

Espen Harlinn

Очень приятно знать, решает общую проблему-мои 5

thatraja

Новый для меня, 5!

Рейтинг:
26

Leeor Aharon

На самом деле, ссылка на проект google code от Manfred также поддерживает google Chrome.

Он также обеспечивает некоторые меры безопасности, такие как блокировка сайта, блокировка CLSID/PROGID и несовместимость с HTML/JS-кодом в стиле IE для создания элементов управления ActiveX.

Отказ от ответственности: я разработал и поддерживаю этот проект.


Espen Harlinn

Я совершенно уверен, что найду применение этому плагину, моему 5

Рейтинг:
20

Espen Harlinn

Ваша проблема может быть решена с помощью jQuery:
http://knol.google.com/k/xml-parsing-using-jquery#[^]

Или вы можете сделать что-то подобное:

function parseXML(str) {
    if (str == null) return null;
    if ($.trim(str) == "") return createDocument();

    var dom = str;
    if ($.browser.msie) {
        dom = new ActiveXObject("Microsoft.XMLDOM");
        dom.async = "false";
        dom.loadXML(str);
    }
    else if (typeof (DOMParser) != "undefined") {
        var parser = new DOMParser();
        try {

            dom = parser.parseFromString(str, "text/xml");
        } catch (e) { };

    }

Сначала попробуйте MS way, а затем попробуйте то, что обычно работает с другими браузерами ...

С уважением
Эспен Харлинн


thatraja

Сегодня я нашел много ответов на jQuery, 5!

Espen Harlinn

Спасибо, thatraja - когда мне приходится работать с чем-то таким "болезненным", как javascript, я могу оценить такую библиотеку, как jQuery

thatraja

Я поставил jQuery(чтобы быстро учиться) в свои ToDos. В течение 1 или 2 месяцев я буду кодером jQuery. Давайте посмотрим.

Espen Harlinn

Это, вероятно, хорошая идея, так как jQuery входит в состав VS2010 и ASP.NET MVC.

Рейтинг:
10

#realJSOP

Никакие браузеры не поддерживают ActiveX, кроме IE. Почему? Потому что никто в здравом уме не позволил бы компоненту activeX загружаться с веб-сайта, если только сеть не находится под жестким контролем, а компонент activeX - из локально контролируемого источника.


Sergey Alexandrovich Kryukov

Абсолютно. Мой 5.
--СА

Espen Harlinn

Использование компонентов на основе ActiveX в IE довольно распространено для корпоративных сайтов , таких как AspenTech IP.21 Process Browser. http://www.aspentech.com/products/aspen-web21.aspx