创建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中文网其他相关文章!