.net程序包含webbrowser插件時遇到的各類問題

1. .net封裝好的webbrowser對右鍵菜單/滾動條的支持比較好, 可是對用js彈出窗口的支持就頗有問題, js彈出窗口不會發布NewWindow事件; 而activex控件的axwebbrowser則剛好相反, 它對右鍵菜單和滾動條的操做都須要經過js來操做, 相對比較繁瑣, 可是NewWindow3事件對彈窗窗口事件支持很好html

2. 若是發佈程序後發現用戶沒法獲取到webbrowser控件的各類事件, 那麼通常是由於客戶的電腦中沒有Microsoft.mshtml.dll這個庫, 這時候就須要將這個庫同步發佈到程序目錄。這個文件通常位於C:\Program Files (x86)\Microsoft.NET\Primary Interop Assemblies, 若是這個目錄沒有的話,能夠嘗試在C:\WINDOWS\Microsoft.NET\Framework\v{你的.net版本}目錄下運行RegAsm.exe,註冊C:\WINDOWS\system32\mshtml.dll(此庫爲win32庫,.net沒法直接使用)組件,註冊後,Primary Interop Assemblies目錄中便出現了該dll。web

3. 在某些網站, 會發現沒法獲取到DocumentComplete事件, 這時就須要判斷Webbrowser.ReadyState是不是Completed(只能用Timer定時檢測了).網站

4. 在多frame的頁面, 會有屢次的DocumentComplete事件, 每一個frame一個.net

相關文章
相關標籤/搜索