随着.NET WebBrowser控件提供了一个的window.external对象VB6,我们可以这样做:在web浏览器托管的网页
WebBrowser1.ObjectForScripting = new a_class();
其中a_class
被声明为[ComVisible(True)]
。
之后,a_class
的实例可以在页面下以名称window.external
访问javascript。
如何实现与VB6/VBA WebBrowser OCX控件相同?
显然没有直接的属性设置。
有被WebBrowser1.Document.parentWindow
和WebBrowser1.Document.parentWindow.external
对象,既没有null
(提供的页面加载),但在
运行时错误445
对象分配的东西,后者的结果实例没有按” t支持这一行动。
只是为了排除这种可能性,我做了我想通过implement the IObjectSafety
interface类,但没有做任何事情(在IObjectSafety
成员甚至不叫)。
我也试着用TypeLib Information检查现有的parentWindow.external
对象。 ClassClassInfoFromObject
因“不支持自动化或所需接口”而失败,InterfaceInfoFromObject
将失败,并且“下标超出范围”。
它似乎'VBOleGuids3'只有谷歌知道,因为你发布这个答案:)我从哪里可以得到它?此外,这将无法在VBA中工作,除非使用VB6预编译,因为没有VBControlExtender支持,对吧? – GSerg 2013-03-01 16:37:09
我不敢在VBA中使用这段代码。对于typelib,请尝试http://www.vbaccelerator.com/typelib.htm - 也需要'threadapi.tlb'。 – wqw 2013-03-02 04:35:23