建立Internet Explorer擴充功能
先決條件:
步驟:
建立類別庫專案: 在Visual Studio中,建立一個名為「InternetExplorerExtension」的新C#類別庫專案。
新增引用: 新增對「Interop.SHDocVw」和「Microsoft.mshtml」組件的參考。
定義BHO類: 建立一個名為「WordHighlighterBHO」的類,並實作以下介面:
處理文件完成事件: 實作「OnDocumentComplete」方法,遍歷DOM並使用JavaScript突出顯示特定單字(例如,「瀏覽器」)的出現。
新增選單項目: 定義一個選單項目指令以開啟加載項的設定窗體。
持久化資料: 將設定選項(例如要反白的文字)儲存到登錄檔以實現持久性。
註冊BHO: 使用「RegisterBHO」方法將加載項註冊到系統。
編譯和安裝: 編譯解決方案,並確保配置「後期產生」事件以在GAC中註冊組件。
針對IE11的其他注意事項:
範例程式碼:
<code class="language-csharp">namespace InternetExplorerExtension { public class WordHighlighterBHO : IObjectWithSite, IOleCommandTarget { // ... public void OnDocumentComplete(object pDisp, ref object URL) { // ... } // ... public int Exec(IntPtr pguidCmdGroup, uint nCmdID, uint nCmdexecopt, IntPtr pvaIn, IntPtr pvaOut) { // ... // 从命令栏访问文档。 var document = browser.Document as IHTMLDocument2; var window = document.parentWindow; var result = window.execScript(@"alert('您现在可以配置要高亮的文本...');"); var form = new HighlighterOptionsForm(); form.InputText = TextToHighlight; if (form.ShowDialog() != DialogResult.Cancel) { TextToHighlight = form.InputText; SaveOptions(); } // ... return 0; } // ... public static void RegisterBHO(Type type) { string guid = type.GUID.ToString("B"); // ... } // ... } }</code>
以上是如何使用 C# 和 Visual Studio 開發 Internet Explorer 擴充功能?的詳細內容。更多資訊請關注PHP中文網其他相關文章!