ActiveX в Windows 7 выдает ошибку «Объект не поддерживает свойство или метод» - PullRequest
1 голос
/ 09 ноября 2011

У нас есть сторонний ActiveX. Кажется, что он отлично работает на компьютере с Windows XP (Internet Explorer 7). Однако, когда мы тестируем 64-битную версию Windows 7 Professional (Internet Explorer 9), мы получаем сообщение об ошибке - «Объект не поддерживает свойство или метод« {methodname} »«

Кто-нибудь знает, что может быть причиной этого?

  • Есть ли проблема с ОС - безопасность более жесткая, поэтому сборке нужно что-то?

  • Есть ли проблема с браузером - опять же, может быть, безопасность ужесточена, поэтому что-то в Инструменты >> Свойства обозревателя >> Необходимо настроить безопасность?

Мысли и предложения будут с благодарностью!

HTML:

<body onload="OpenActiveX()">
    <OBJECT id="OurActiveX" 
        name=”OurActiveX" 
        classid="clsid:43663B77-905C-4885-BC6B-4F57FE10A270" 
        VIEWASTEXT codebase="CS1504CAB.cab">
    </OBJECT>

    <script language="javascript">
        function OpenActiveX()
        {
            try
            {
                alert(document.OurActiveX.Echo("Hi I am here."));
                var sdata = document.OurActiveX.GetData();
                if(sdata == "0"){
                    document.getElementById("barcodes").innerHTML = "No barcodes found.";
                }
                else if( sdata == "1"){
                    document.getElementById("barcodes").innerHTML = "Could not find the barcode reader.";
                }
                else{
                    var adata = sdata.split(":");
                    document.getElementById("barcodes").innerHTML = adata[0] + "<BR/>" + adata[1];
                }
            }
            catch(Err)
            { 
                alert(Err.description);
            }
        }
    </script> 
<div id="barcodes" />

Ответы [ 3 ]

2 голосов
/ 10 ноября 2011

Сообщение об ошибке указывает на то, что элемент управления недоступен на машине. Вы можете проверить параметры безопасности IE на клиентском компьютере и проверить следующие параметры безопасности IE как «Подсказка» или «Включено»:

1) Загрузить подписанные элементы управления ActiveX 2) Запустите ActiveX Controls и плагины 3) Элементы управления Script ActiveX отмечены как безопасные для сценариев

Защищенный режим включен по умолчанию в Windows 7. Выключите защищенный режим или попробуйте запустить IE, поскольку администратор может избавиться от проблемы безопасности.

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

0 голосов
/ 25 февраля 2012

ActiveX не работает с 64-битным IE.

0 голосов
/ 10 ноября 2011

Нет document.OurActiveX, потому что атрибут name в вашем HTML не работает (вы использовали «умные кавычки» вместо обычных двойных кавычек - если вы внимательно посмотрите, подсветка синтаксиса выдает это).

Таким образом, на самом деле document.OurActiveX равно undefined, и поэтому вы не можете вызывать какие-либо методы для него.

<OBJECT id="OurActiveX" name=”OurActiveX" classid="..."></OBJECT>

Становится:

<OBJECT id="OurActiveX" name="OurActiveX" classid="..."></OBJECT>

В любом случае, выбор узлов DOM, таких как document.someName, очень устарел и немного подвержен ошибкам;полностью избавьтесь от атрибута name и используйте document.getElementById для выбора узла, как у вас в другом месте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...