javasript から BHO に登録されたオブジェクトにプロパティを動的に追加する方法はありますか?
すなわち
// javascript
window.bho
window.bho.foo = "New property";
「オブジェクトはこのプロパティまたはメソッドをサポートしていません」というスロー
ソリューションは .NET 2.0 Framework で動作する必要があります
// C#
public class ScriptableObject: IScriptableObject
{
WebBrowser webBrowser;
HTMLDocument document;
public ScriptableObject(WebBrowser browser)
{
webBrowser = browser;
document = webBrowser.Document as HTMLDocument;
}
// some methods or properties here
}
public class BHO : IObjectWithSite
{
...
public void OnDownloadComplete()
{
document = webBrowser.Document as HTMLDocument;
window = document.parentWindow as IHTMLWindow2;
IScriptableObject so = new ScriptableObject(webBrowser);
// Adding our custom namespace to JavaScript land.
PropertyInfo myProp = winExpando.AddProperty("bho");
myProp.SetValue(winExpando, so, null);
}
}