6 Stimmen

Fehlgeschlagener Aufruf einer BHO-Methode von Javascript im IE9

Ich versuche, eine BHO-Objekt-Methode von einer Javascript-Funktion aufrufen (das Javascript wird durch die BHO mit IHTMLWindow2 execScript injiziert).

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

Das IEBHO ist ein BHO-Objekt und bereits im IE9 geladen.

Und die "DoSomething"-Schnittstelle/Methode ist in der IDL-Datei des BHO-Projekts wie folgt deklariert:

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

Dieser Ansatz funktioniert mit IE7 und IE8 einwandfrei. Die Methode/Schnittstelle "DoSomething" wird von der Javascript-Funktion erfolgreich aufgerufen.

Im IE9 scheint es jedoch immer zu scheitern. Das Javascript scheint das IEBHO-Objekt nicht in seinem Namespace zu finden, was dazu führt, dass der Aufruf der Methode "DoSomething" fehlschlägt.

Ich habe sogar den IE7/IE8-Dokumentenmodus innerhalb von IE9 verwendet und alles funktioniert einwandfrei, aber sobald der Standard-IE9-Dokumentenmodus eingestellt ist, schlägt es fehl.

Ist dies ein BUG im IE9? oder gibt es eine neue Methode für den Zugriff auf die BHO-Methode?

Bitte helfen Sie...

Mit freundlichen Grüßen,

Frank

1voto

CodeGroover Punkte 2097

Überprüfen Sie zunächst, ob BHO in Ihrem IE9 aktiviert ist.

Erweiterbarkeit

In Internet Explorer 9 wurden die Erweiterungsmechanismen für Browser Helper Objects (BHOs) und Symbolleisten gleich geblieben. Das Nichtladen von BHOs oder Symbolleisten zu laden, verbessert die Startzeit, schränkt aber die Möglichkeiten von Entwickler, die Benutzerfreundlichkeit durch diese Erweiterungsmechanismen zu verbessern Mechanismen zu erweitern.

über http://en.wikipedia.org/wiki/Internet_Explorer_9

0voto

Hao Liu Punkte 124

Sie können eine Erweiterung erstellen, indem Sie einfach Schlüssel in der Registrierung mit einer Javascript-Datei erstellen.

In dieser Javascript-Datei können Sie Ihre BHO-Funktion DoSomething() aufrufen. Wenn Sie auf die Schaltfläche in der Befehlsleiste klicken, wird die BHO-Funktion aufgerufen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X