我为Internet Explorer创建了一个BHO(浏览器助手对象)。我已经通过在OnDocumentComplete处理程序中放置一些基本操作并观察它具有所需效果来确认BHO正常工作。我现在正试图从Java脚本中调用BHO中的一种方法。
我找到了几个显示如何执行此操作的资源,这些资源导致了以下代码。
public void OnDocumentComplete(object pDisp, ref object URL)
{
document = (HTMLDocument)webBrowser.Document;
IExpando windowEx = (IExpando)document.parentWindow;
PropertyInfo pi = windowEx.AddProperty("myExtension");
pi.SetValue(windowEx, this, null);
}
在我的java脚本函数中,我有以下内容:
function doWork() {
try {
alert(window.external.myExtension.GetSessionID());
}
catch(err) {
alert(err.message);
}
}
当我调用这个java脚本函数时(作为单击按钮的结果)抛出异常并且我收到消息“无法获取未定义或空引用的属性'GetSessionID'”
我去过几页,说他们解释了如何做到这一点。所有这些都是使用C ++(我在8年内没有使用它并且不符合我的任务要求)或者返回我已经看过但没有帮助的页面(很多主题在Stack上)溢出)。
非常感谢任何帮助。