Не удалось вызвать метод BHO из Javascript в IE9 - PullRequest
6 голосов
/ 23 марта 2011

Я пытаюсь вызвать метод объекта BHO из функции javascript (javascript вводится BHO с использованием IHTMLWindow2 execScript).

function foo()
{
   IEBHO.DoSomething();
}

IEBHO - это объект BHO и уже загруженный в IE9.

И интерфейс / метод DoSomething объявлен в файле IDL проекта BHO как:

[id(1), helpstring("method DoSomething")] HRESULT DoSomething();

Этот подход прекрасно работает с IE7 и IE8.Метод / интерфейс "DoSomething" успешно вызывается из функции javascript.

Однако в IE9, похоже, всегда происходит сбой.Кажется, JavaScript не может найти объект IEBHO в его пространстве имен, что приводит к ошибке вызова метода «DoSomething».

Я даже использовал режим документов IE7 / IE8 внутри IE9, и все они работают нормально, но каккак только он устанавливается в режим документа IE9 по умолчанию, происходит сбой.

Это ошибка в IE9?или есть новый способ доступа к методу BHO?

Пожалуйста, помогите ...

С уважением,

Фрэнк

Ответы [ 2 ]

1 голос
/ 06 марта 2012

В первый раз убедитесь, что у вас включен BHO IE9

Расширяемость

В Internet Explorer 9 механизмы расширения для браузера Вспомогательные объекты (BHO) и панели инструментов остаются прежними. Не загружается BHOs или панели инструментов улучшает время запуска, но ограничивает возможности разработчики, чтобы расширить пользовательский опыт через эти расширяемость механизмы.

через http://en.wikipedia.org/wiki/Internet_Explorer_9

0 голосов
/ 09 июня 2012

Вы можете создать расширение, просто создав ключи в реестре с помощью файла JavaScript.

В этом файле javascript вы можете вызывать функцию BHO DoSomething (). Когда вы нажимаете кнопку в командной строке, вызывается функция BHO.

...