隨着.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