IE 10 のリリース プレビュー用の BHO を開発しようとしています。BHO は、javascript が C# 関数を呼び出せるようにする必要があります。
ここで入手可能な指示に従いました:
Javascript からの C# BHO メソッドの呼び出し
これらの手順は、IE 9 でうまく機能します。
残念ながら、IE 10 で作成された最初のタブでしか機能しないことがわかりました。2 つ目以降のタブでは、BHO インターフェイスが Javascript に公開されません。新しいタブが機能する場合もありますが、ほとんどの場合は機能しません。さらに、黙って失敗します。これはプロセス モデルと関係があると思いますが、IE 9 (同じプロセス モデル) でも問題なく動作します。
私が使用しているコードの特定のスニペットは次のとおりです。
private void InstallJSObject(IHTMLWindow2 window)
{
// Install our javascript object
IExpando windowEx = (IExpando)window;
PropertyInfo property = windowEx.GetProperty("myBHO", System.Reflection.BindingFlags.IgnoreCase);
if (property == null)
{
property = windowEx.AddProperty("myBHO");
}
property.SetValue(windowEx, this, null);
}
投稿する前に、次のことを調査しました: http://bit.ly/R9qldf