Comment ajouter dans les menus contextuels standard du contrôle WebBrowser

Traductions disponibles Traductions disponibles
Numéro d'article: 177241 - Voir les produits auxquels s'applique cet article
Agrandir tout | Réduire tout

Sommaire

Résumé

Cet article contient des informations complémentaires à la section "Controlling the menus contextuels" dans la vue d'ensemble "Reusing the Web Browser contrôle & MSHTML" dans Internet Client SDK. Plus spécifiquement, cet article décrit les clés de Registre facultatifs pour contrôler le contexte dans lequel ajouter éléments sont affichés, ainsi que la description de l'objet événement du menu contextuel.

Plus d'informations

Voici le texte complet complète de la section "Ajout pour le standard menus contextuels" :

Ajout dans les menus contextuels standard

Il est possible d'ajouter des éléments aux menus contextuels existante du contrôle WebBrowser en consignant des entrées dans le Registre et en liant ces URL exécuter le script. Pour ajouter des éléments supplémentaires aux menus contextuels WebBrowser standard, créer ou ouvrir la clé suivante :
   HKEY_CURRENT_USER
       Software
           Microsoft
               Internet Explorer
                   MenuExt
				
sous cette clé, vous créez une clé (pas une valeur) dont le nom contient le texte que vous voulez afficher dans le menu. La valeur par défaut pour cette clé contient l'URL qui sera exécutée. Le nom de la clé peut inclure le caractère «&», qui provoquera le caractère situé juste après le "&" pour être souligné. L'URL sera chargé à l'intérieur d'une boîte de dialogue HTML masquée, tous le script Inline associé seront exécuté et la boîte de dialogue va être fermée. Propriété de external.menuArguments masqué HTML de la boîte de dialogue contient l'objet de fenêtre de la fenêtre sur laquelle l'élément de menu contextuel a été exécutée.

L'entrée de Registre suivante va ajouter un élément avec le titre "Mon Menu Item" au menu contextuel WebBrowser et exécutera le script inline contenu dans le fichier «c:\myscript.htm.»
   HKEY_CURRENT_USER
       Software
           Microsoft
               Internet Explorer
                   MenuExt
                       My Menu Item = "file://c:\myscript.htm"
				
Voici le contenu de «c:\myscript.htm.»
   <SCRIPT LANGUAGE="JavaScript" defer>
   var parentwin = external.menuArguments;
   var doc = parentwin.document;
   var sel = doc.selection;
   var rng = sel.createRange();
   var str = new String(rng.text);
   if(str.length == 0)
      rng.text = "MY INSERTED TEXT";
   else
      rng.text =  str.toUpperCase();
   </SCRIPT>
				
Ce script obtient, objet de fenêtre, le parent de external.menuArguments. L'objet fenêtre parent est le contrôle WebBrowser dans lequel l'élément de menu contextuel a été exécuté. Le script puis obtient la sélection en cours et, si aucune sélection n'est présente, insère le texte «MY TEXT insérée» au point où le menu contextuel a été exécuté. S'il existe une sélection actuelle, le texte sélectionné est modifié en majuscules.

Touches facultatifs

Sous la clé de Registre élément créée précédemment, il y a quelques valeurs facultatives. L'un de ces spécifie cet élément s'affiche sur les menus contextuels. L'autre spécifie que le script doit être exécuté sous la forme d'une boîte de dialogue.

Les DWORD «contextes» valeur spécifie les menus contextuels dans lequel un élément apparaîtront. Il est un masque de bits constitué de la logique OR des valeurs suivantes (définis dans mshtmhst.h). Ces valeurs correspondent à la constante transmises lors d'un appel IDocHostUIHandler::ShowContextMenu.
(0x1 << CONTEXT_MENU_DEFAULT) (evaluates to 0x1)
(0x1 << CONTEXT_MENU_IMAGE) (evaluates to 0x2)
(0x1 << CONTEXT_MENU_CONTROL) (evaluates to 0x4)
(0x1 << CONTEXT_MENU_TABLE) (evaluates to 0x8)
(0x1 << CONTEXT_MENU_TEXTSELECT) (evaluates to 0x10)
(0x1 << CONTEXT_MENU_ANCHOR) (evaluates to 0x20)
(0x1 << CONTEXT_MENU_UNKNOWN) (evaluates to 0x40)
				
Par exemple, si vous souhaitez que votre extension simple apparaissent uniquement dans le menu par défaut et le menu de sélection de texte, créer une valeur DWORD dans le Registre sous la clé de "Mes Menu Item" appelée «Contextes» et définissez-la sur 0 x 11. À partir du code C/C++, cela peut être exprimé comme suit :
   (0x1 << CONTEXT_MENU_DEFAULT) | (0x1 << CONTEXT_MENU_TEXTSELECT)
				
l'autre facultatif valeur DWORD de Registre est «Indicateurs». Seul un bit (0 x 1) est valide pour cette valeur de Registre et il est défini comme MENUEXT_SHOWDIALOG dans Mshtmhst.h. Lorsque ce bit est défini, le script est exécuté comme si elle avait été appelé par le biais de la méthode ShowModalDialog. La fenêtre qui s'exécute le script n'est pas masquée et la boîte de dialogue estactivée ne fermé pas automatiquement au terme de script inline et onload. La valeur external.menuArugments contient toujours l'objet de fenêtre dans laquelle l'utilisateur a sélectionné l'élément de menu.

Context Menu Event

Chaque fois qu'une extension de menu de contexte est déclenchée, l'objet d'événement de la fenêtre principale (external.menuArguments.event) contient des informations sur où l'utilisateur a cliqué et le menu contextuel a été indiqué. Les coordonnées de la souris sont valides avec event.srcElement. La valeur event.type contient une des chaînes suivantes, qui indique quel menu contextuel a été présentée à l'utilisateur :
  • MenuExtDefault
  • MenuExtImage
  • MenuExtControl
  • MenuExtTable
  • MenuExtTextSelect
  • MenuExtAnchor
  • MenuExtUnknown

Un autre exemple

Cet exemple montre comment créera un nouvel élément de menu contextuel sur simplement le menu par défaut. Cet élément, appelé «Afficher dans une nouvelle fenêtre» démarrera tout ce qui est cliquer sur dans une nouvelle fenêtre. Ainsi, si quelque chose est profondément imbriqué dans un jeu de cadres, vous pouvez facilement lancer une image spécifique dans sa propre fenêtre. Voici le contenu d'un fichier .reg qui peut être exécuté pour insérer les paramètres de Registre correcte. Appelez cette Example2.reg. Double-cliquez sur ce fichier dans l'Explorateur insère les paramètres dans votre Registre. REGEDIT4

   [HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\Show in
   &New Window]
   @="file://c:\\example2.htm"
   "Contexts"=dword:00000001
				
ici sont le contenu de «C:\Example2.htm.»
   <SCRIPT LANGUAGE="JavaScript" defer>
      open(external.menuArguments.location.href);
   </script>
				

Références

Outils et Technologies Internet ; réutilisation du contrôle de navigateur Web et de MSHTML ; Internet Client SDK : Présentation

Propriétés

Numéro d'article: 177241 - Dernière mise à jour: mardi 21 mars 2006 - Version: 2.2
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Internet Explorer 4.0 Édition 128 bits
  • Microsoft Internet Explorer 4.01 Service Pack 2
Mots-clés : 
kbmt kbhowto KB177241 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 177241
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.
Exclusion de responsabilité concernant les contenus obsolètes dans la Base de connaissances
Cet article concerne des produits pour lesquels Microsoft n'offre plus de support. Il est par conséquent fourni « en l'état » et ne sera plus mis à jour.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com