2014-01-28 49 views
2

我正在開發CSHARP中的BHO,並且我在onDocumentComplete方法中遇到了問題。
它在主文檔加載的每個IFRAME上運行。我怎樣才能避免它?我只想處理主窗口中的事件。BHO OnDocumentComplete僅適用於頂部框架?

public void OnDocumentComplete(object pDisp, ref object URL) 
    { 
     document = (HTMLDocument)webBrowser.Document;  
     document.body.style.backgroundColor = "red"; 
    } 

回答

2

比較this.sitepDisp。如果它們相同,則代碼在主框架中運行:

public void OnDocumentComplete(object pDisp, ref object URL) 
{ 
    if (pDisp != this.site) { 
     // Ignore subframes 
     return; 
    } 
    document = (HTMLDocument)webBrowser.Document;  
    document.body.style.backgroundColor = "red"; 
} 
+0

這是什麼? 我得到的錯誤,我的項目不包含'網站'的定義,並沒有擴展方法'站點'接受類型'Greyhound.BHO.BHO'的第一個參數可以找到(你是否缺少使用指令或程序集參考?) – user280109

+1

@ user280109您的SetSite方法(實現IObjectWithSite接口)在網站更改時接收的對象。 –

+0

我是c#的新手,我在setsite方法中看到站點對象,但是我無法從ondocumentcomplete方法訪問它。我需要使變量成爲一個全球性的嗎? – user280109