Créer une extension Internet Explorer
Prérequis :
Étapes :
Créez un projet de bibliothèque de classes : Dans Visual Studio, créez un nouveau projet de bibliothèque de classes C# nommé "InternetExplorerExtension".
Ajouter des références : Ajoutez des références aux assemblys "Interop.SHDocVw" et "Microsoft.mshtml".
Définissez la classe BHO : Créez une classe nommée "WordHighlighterBHO" et implémentez l'interface suivante :
Gestion de l'événement de complétion du document : Implémentez la méthode "OnDocumentComplete", qui parcourt le DOM et utilise JavaScript pour mettre en évidence les occurrences d'un mot spécifique (par exemple, "navigateur").
Ajouter un élément de menu : Définissez une commande d'élément de menu pour ouvrir le formulaire de configuration du complément.
Données persistantes : Enregistrez les options de configuration (telles que le texte à surligner) dans le registre pour la persistance.
Enregistrer BHO : Utilisez la méthode "RegisterBHO" pour enregistrer le complément sur le système.
Compilez et installez : Construisez la solution et assurez-vous de configurer l'événement "post-build" pour enregistrer l'assembly dans le GAC.
Remarques supplémentaires pour IE11 :
Exemple de code :
<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>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!