Différences entre les versions de « Les scripts de Maxthon v2.0 »

De Wiki Francophone de Maxthon
Aller à la navigation Aller à la recherche
 
(36 versions intermédiaires par 4 utilisateurs non affichées)
Ligne 13 : Ligne 13 :




'''1. ModuleType - Script, HTML, EXE, COM et COM_Global'''
==== '''1. ModuleType - Script, HTML, EXE, COM et COM_Global''' ====




'''Script''' - Le Plugin Script peut être de type button, qui exécute un script lorsqu'il est cliqué. le script peut être dans un langage supporté par IE, comme le javascript ou le vbscript. Maxthon 2.0 supporte le mscript qui exécute l'environment (plus de détails ci-après). Le Script peut également être de type sidebar, qui affiche un fichier HTML dans la barre latérale.
'''Script''' - Le Plugin Script peut être de type button, qui exécute un script lorsqu'il est cliqué. le script peut être dans un langage supporté par IE, comme le JavaScript ou le vbscript. Maxthon 2.0 supporte le mscript qui exécute l'environnement (plus de détails ci-après). Le Script peut également être de type sidebar, qui affiche un fichier HTML dans la barre latérale.
   
   
'''HTML''' - Un nouveau type de Plugin pour Maxthon 2.0 seulement. Le Plugin de type HTML est similaire au Plugin Script Sidebar dans sa nature. La différence majeure est que le Plugin Script Sidebar est affiché dans la barre latérale de Maxthon alors que le Plugin HTML est affiché comme un bouton dans la barre des Plugins ou n'importe quelle barre d'outils (barre d'état, barre des menus, barre des onglets, barre d'adresses...).
'''HTML''' - Un nouveau type de Plugin pour Maxthon 2.0 seulement. Le Plugin de type HTML est similaire au Plugin Script Sidebar dans sa nature. La différence majeure est que le Plugin Script Sidebar est affiché dans la barre latérale de Maxthon alors que le Plugin HTML est affiché comme un bouton dans la barre des Plugins ou n'importe quelle barre d'outils (barre d'état, barre des menus, barre des onglets, barre d'adresses...).
   
   
'''EXE''' - EXE plugin will be shown as a button in the plugin bar. EXE plugin can be any executable file. Maxthon can pass various parameters to the executable file like the url of the current webpage or the handle of Maxthon browser window.
'''EXE''' - Le Plugin EXE sera affiché comme un bouton sur la barre des Plugins. Le Plugin EXE peut être n'importe quel fichier exécutable. Maxthon peut passer plusieurs paramètres au fichier exécutable comme l'URL de la page Web en cours ou le "handle" de la fenêtre de Maxthon.


'''COM''' - COM plugin can be written in any programming language supported by MSCOM, like C++, Delphi, Visual Basic, C# etc. COM plugins are created on per tab basis when a tab is created (SideBar/Toolbar/MHO/COM_Button types) or when the plugin button is clicked (Button type), and is destroyed when the tab is closed. A COM plugin can implement the IObjectWithSite interface to obtain the pointer to webbrowser of the tab, the browser events and the Document Object Model for manipulation.
'''COM''' - Un plugin COM peut instancier l'interface IObjectWithSite pour obtenir un pointeur sur l'onglet actif du navigateur, les évènements et sur le DOM pour toute manipulation .


'''COM_Global''' - COM_Global plugins are created only once when Maxthon is started, and is destroyed when Maxthon is closed. COM_Global plugins are mostly for browser functions not related to the Document Object Model. Yet COM_Global plugins can implement a PutMaxCommander function through the IDispatch interface to obtain a Maxthon plugin object, which can be used the same way as Maxthon's external object for script plugins (see script plugin commands below), for interaction with the Document Object Model of tabs and Maxthon.  
'''COM_Global''' - Les Plugins COM_Global sont créés seulement une fois au démarrage de Maxthon, et sont détruits à la fermeture de Maxthon. Les Plugins COM_Global sont souvent pour les fonctions de navigation qui ne sont pas en relation avec le Document Object Model. Ainsi, les Plugins COM_Global peuvent implémenter une fonction PutMaxCommander à travers l'interface IDispatch pour obtenir un objet du Plugin de Maxthon, qui peut être utilisé de la même façon qu'un objet externe de Maxthon pour les Plugins script (cf. les commandes ci-dessous des Plugins script), pour interagir avec le Document Object Model des onglets et Maxthon.


Note that Maxthon 2.0 is multi-thread (a thread for each tab). Plugins designed for extensive interaction with the Document Object Model of tabs should be implemented as COM (per tab) instead of COM_Global so they can work more efficiently within the same thread of individual tab.
Notez que Maxthon 2.0 est "multithread" (un "thread" pour chaque onglet). Les Plugins développés pour une interaction approfondie avec le Document Object Model des onglets doivent être développés en COM (par onglet) au lieu de COM_Global ainsi ils pourront fonctionner plus efficacement avec le même "thread" d'un onglet individuel.


==== '''2. Type - Button, SideBar, Toolbar, COM_Button, MHO, and MHO_Button''' ====


'''Type - Button, SideBar, Toolbar, COM_Button, MHO, and MHO_Button'''


'''Button''' - Un bouton sera ajouté sur la barre des Plugins. L'opération spécifiée par le script (Plugin Script), l'exécutable (Plugin EXE), la DLL (Plugin COM) sera exécutée lorsque le bouton sera cliqué. En option, Les Plugins de bouton peuvent implémenter un menu déroulant pour le Plugin. Un Plugin de bouton COM doit implémenter l'interface IOleCommandTarget pour recevoir le clic du bouton. Si un menu est implémenté, la fonction IOleCommandTarget_Exec recevra un id de commande de 1 lorsque le bouton est cliqué, et un id de commande de 2 lorsque le premier item du menu est cliqué, et ainsi de suite. Un Plugin de bouton COM est créé lorsque le bouton est cliqué et est détruit lorsque l'onglet est fermé (comme IE7).


'''Button''' - A button will be added to the plugin bar. The operation specified by script (Script plugin), executable (EXE plugin), dll (COM plugin) will be runned when the button is clicked. Optionally button plugins can implement a dropdown menu for the plugin. A COM button plugin must implement the IOleCommandTarget interface to receive the button click. If a plugin menu is implemented, the IOleCommandTarget_Exec function will receive a command id of 1 when the button is clicked, and a command id of 2 when the first menu command is clicked, and so on. A COM button plugin is created when the button is clicked and is destroyed when the tab is closed (the same as IE7).  
'''SideBar''' - Un bouton sera ajouté à la barre latérale, et un élément sera ajouté au menu principal > Affichage > Barre latérale. Lorsque le bouton ou l’élément du menu est cliqué, la barre latérale de Maxthon s'ouvrira et affichera le fichier HTML spécifié par le Plugin (Plugin script), ou la fenêtre spécifiée par le Plugin à travers l'interface IDeskBand (Plugin com ou com_global).


'''SideBar''' - A button will be added to the sidebar, and an item will be added to the main menu > View > SideBars. When the button or menu item is clicked, Maxthon's sidebar will be opened and show the HTML file specified by the plugin (script plugin), or the window specified by the plugin through the IDeskBand interface (com or com_global plugin).
'''Toolbar''' - Les Plugins de barre d'outils doivent être écrits en COM. Une nouvelle barre d'outils sera ajoutée, qui pourra être affichée ou cachée à partir du menu principal > Affichage > Barre d'outils. Un Plugin de barre d'outils doit implémenter l'interface IDeskBand pour spécifier la fenêtre de la barre d'outils. Les Plugins de barre d'outils peuvent être COM ou COM_Global. Les Plugins de barre d'outils COM sont affectés à un onglet lorsque l'onglet est crée, et sont détruits lorsque l'onglet est fermé. Cela permet l'adoption de certaines barres d'outils d'IE dans Maxthon en l'état ou avec un minimum de changements. Les barres d'outils COM_Global sont créés uniquement au démarrage de Maxthon, et sont détruites à la fermeture de Maxthon. Une barre d'outils COM_Global peut instancier l'interface IObjectWithSite pour obtenir un pointeur sur l'onglet actif du navigateur à travers la fonction SetSite. Lorsque l'onglet actif est modifié, SetSite sera appelé de nouveau pour passer le pointeur sur le nouvel onglet actif du navigateur.


'''Toolbar''' - Toolbar plugins must be written in COM. A new toolbar will be added, which can be shown or hidden from Main Menu > View > Toolbars. A Toolbar plugin must implement the IDeskBand interface to specify the toolbar window. Toolbar plugins can be COM or COM_Global. COM Toolbar plugins are created on per tab basis when a tab is created, and are destroyed when the tab is closed. This enables the adoption of most IE Toolbars in Maxthon with minimal or no change. COM_Global Toolbars are created only once when Maxthon is started, and are destroyed when Maxthon is closed. If a COM_Global Toolbar implements the IObjectWithSite interface, it can obtain the webbrowser pointer of the active tab throught SetSite. When the active tab is changed, SetSite will call again to pass the webbrowser pointer of the new active tab.
'''COM_Button''' - Les Plugins COM_Button sont identiques au Plugins de barre d'outils, à l'exception près que les Plugins COM_Button sont affichés dans Maxthon comme un bouton, et non pas comme une barre d'outils. Un Plugin COM_Button a la même flexibilité de positionnement dans l'interface de Maxthon que les autres boutons, mais il supporte également la richesse de l'interface d'une barre d'outils par rapport à celle d'un simple bouton.


'''COM_Button''' - COM_Button plugins are similar to Toolbar plugins, except that COM_Button plugins are shown in Maxthon similar to a button, instead of a toolbar. A COM_Button plugin has the flexibility of placement in Maxthon interface like other buttons, but also supports the richer interface of a toolbar than a button.
'''MHO''' - Un Plugin MHO est identique au Browser Helper Object d'IE et doit être écrit en COM. Les Plugins MHO sont créés par onglet lorsque l'onglet est créé, et sont détruits lorsque l'onglet est fermé. Les Plugins MHO doivent instancier l'interface IObjectWithSite pour obtenir un pointeur sur l'onglet du navigateur  ,de manière à interagir avec le DOM. Les Plugins MHO n'ont pas d'interface.


'''MHO''' - MHO plugin is similar to IE's Browser Helper Object and must be written in COM. MHO plugins are created on per tab basis when a tab is created, and are destroyed when a tab is closed. MHO plugins should implement the IObjectWithSite interface to obtain the webbrowser pointer of the tab for interaction with the DOM. MHO plugins do not have interface.
'''MHO_Button''' - Le Plugin MHO est une combinaison d'un Plugin MHO et d'un Plugin bouton COM. Les Plugins MHO_Button sont créés par onglet lorsque l'onglet est créé, et sont détruits lorsque l'onglet est fermé. En plus, une instance de Plugin MHO_Button sera créée lorsque son bouton est cliqué, et l'instance sera détruite lorsque l'opération est terminée. Le Plugin MHO_Button ajoute essentiellement une interface bouton au Plugin MHO.


'''MHO_Button''' - MHO plugin is a combination of MHO plugin and COM Button plugin. MHO_Button plugins are created on per tab basis when a tab is created, and are destroyed when a tab is closed. In addition, an instance of MHO_Button plugin will be created when its button is clicked, and the instance will be destroyed when the operation is finished. MHO_Button plugin essentially adds a button interface to the MHO plugin.
== Créer un Plugin pour Maxthon ==


== Create Maxthon Plugin ==


'''Composants majeurs d’un Plugin de Maxthon'''


'''Major Components of Maxthon Plugin'''
Un Plugin de Maxthon contient généralement les fichiers suivants :


A Maxthon normally contains the following files:
'''Fichiers INI''' – Le fichier plugin.ini est nécessaire pour tous les Plugins de Maxthon. Il définit plusieurs attributs du Plugin.
 
'''INI file''' – The plugin.ini file necessary for all Maxthon plugins. It defines various attributes of the plugin.
    
    
'''HTML/DLL/EXE file''' – The most main component necessary for all Maxthon plugins specifying the operation to be done or the content to be displayed.
'''Fichiers HTML/DLL/EXE file''' – Le composant principal nécessaire à tous les Plugins de Maxthon spécifiant l'opération à réaliser ou le contenu à afficher.
   
   
'''Icon file''' – The button ico (*.ICO) necessary for button and sidebar plugins. COM and EXE plugin may use icons in their own resources.  
'''Fichier Icônes''' – L'icône du bouton (*.ICO) nécessaire aux Plugins bouton et barre latérale. Les plugins COM ou EXE peuvent utiliser des icones insérées dans leur code.
   
   
'''Config.html''' – An optional HTML file for use with Script and HTML type plugins as the configuration dialog.
'''Config.html''' – Un fichier HTML optionnel pour être utilisé avec les Plugins de type Script et HTML comme boîte de dialogue de configuration.






'''plugin.ini file'''
'''Fichier plugin.ini'''




[General] necessary for definition of various plugin attributes
[General] nécessaire à la définition de plusieurs attributs du plugin
   
   
   
   
'''Name'''= plugin name
'''Name'''= nom du Plugin
   
   
'''Author'''= author name
'''Author'''= nom de l'auteur
   
   
'''Version'''= plugin version
'''Version'''= Version du Plugin
   
   
'''ModuleType'''= can be Script, HTML, EXE, COM, or COM_Global
'''ModuleType'''= Peut être Script, HTML, EXE, COM, or COM_Global
   
   
'''FileName'''= can be HTML file (Script and HTML plugins),DLL file (COM plugins),or EXE file (EXE plugins)
'''FileName'''= Peut-être un fichier HTML (Plugins Script et HTML), un fichier DLL (Plugins COM) ou un fichier EXE (Plugins EXE)
   
   
'''Comments'''= the description shown in plugin options dialog and/or button type plugin tooltips
'''Comments'''= La description affichée dans les options du Plugin et/ou l'info-bulle du Plugin de type Button
   
   
'''Type'''= can be M2Plugin_Button, M2Plugin_Sidebar, M2Plugin_Toolbar, M2Plugin_COM_Button, M2Plugin_MHO, or M2Plugin_MHO_Button
'''Type'''= Peut être M2Plugin_Button, M2Plugin_Sidebar, M2Plugin_Toolbar, M2Plugin_COM_Button, M2Plugin_MHO, ou M2Plugin_MHO_Button
   
   
'''IdealSize'''= the width and height of plugin interface (eg 120 20, for HTML plugin only)
'''IdealSize'''= La largeur et la hauteur de l'interface du Plugin (ex. 120 20, pour un Plugin HTML seulement)
   
   
'''IdealSizeVertical'''= the width and height of plugin interface when docked vertically (eg 120 20, optional for HTML plugin)
'''IdealSizeVertical'''= La largeur et la hauteur de l'interface du Plugin lorsqu'il est positionné verticalement (ex 120 20, optionnel pour un Plugin HTML)
   
   
'''Icon'''= the button icon for button and sidebar plugins
'''Icon'''= L'icône du bouton pour les Plugins de type Button ou Sidebar
   
   
'''HotIcon'''= the button icon when the button plugin is hovered
'''HotIcon'''= L'icône du bouton lorsque le bouton du Plugin est survolé
   
   
'''CLSID'''= the CSLID for COM and COM_Global plugins
'''CLSID'''= Le CSLID pour les Plugins de type COM et COM_Global
   
   
'''DefaultLocation'''= optional, set the default location of plugin icon, can be '''None''' (in plugin bar but not shown after installation, user can show the button from the add/remove button menu), '''MenuBar''', '''ToolBar''', or '''StatusBar'''. If this is not set, the plugin will be shown in the plugin bar. For '''Button''' type plugin and Maxthon 2.0.5 or later.
'''DefaultLocation'''= Optionnel, défini la localisation par défaut de l'icône du Plugin, peut être '''None''' (dans la barre des Plugins, mais non affichée après l'installation, l'utilisateur peut afficher le bouton à partir du menu Afficher ou masquer des boutons), '''MenuBar''', '''ToolBar''', ou '''StatusBar'''. S’il n'est pas définit, le Plugin sera affiché dans la barre des Plugins. Pour le Plugin de type '''Button''' et pour Maxthon 2.0.5 ou supérieur.


'''StartAfterPageDoneURL'''= optional, set the addresses where the plugin should auto start, supports wildcards, and can use "|" to separate addresses, eg '''*maxthon.com*|forum.maxthon.cn*'''. If not set, will auto start in all addresses, equivalent to a setting of '''*'''. For '''Script''' '''Button''' type plugin and Maxthon 2.0.5 or later.
'''StartAfterPageDoneURL'''= Optionnel, définit les adresses pour lesquelles le Plugin doit démarrer automatiquement, supporte les caractères joker, et on peut utiliser "|" pour séparer les adresses, ex. '''*maxthon.com*|forum.maxthon.cn*'''. Si il n'est pas défini, le Plugin démarrera pour toutes les adresses, équivalent à '''*'''. Pour les Plugins de types '''Script''' et '''Button''' et pour Maxthon 2.0.5 ou supérieur.


'''StartAfterPageDoneURLExclude'''= optional, set where the plugin should not auto start, has higher priority than startAfterPageDoneUrl. Use the same format as startAfterPageDoneUrl eg. '''forum.maxthon.cn/index.php?|*.maxthon.cn/index.php?showtopic*'''. For '''Script''' '''Button''' type plugin and Maxthon 2.0.5 or later.
'''StartAfterPageDoneURLExclude'''= Optionnel, définit les adresses pour lesquelles le Plugin ne doit pas démarrer automatiquement, a une priorité supérieure à startAfterPageDoneUrl. Utilise le même format que startAfterPageDoneUrl ex. '''forum.maxthon.cn/index.php?|*.maxthon.cn/index.php?showtopic*'''. Pour les Plugins de types '''Script''' et '''Button''' et pour Maxthon 2.0.5 ou supérieur.


   
   
[MyIE2Buttons] optional for definition of drop down menu for Button and MHO_Button plugins
[MyIE2Buttons] Optionnel pour définir le menu déroulant pour les Plugins de types Button et MHO_Button
   
   
   
   
'''Count'''= the number of drop down menu items
'''Count'''= Le nombre d'éléments du menu déroulant
   
   
'''Name1'''= the name of the first menu item
'''Name1'''= Le nom du 1er élément du menu déroulant
   
   
'''FileName1'''= the file name, or the file name plus the parameter for EXE plugins, of the first menu item. For COM Button and COM MHO_Button plugins, put an arbitrary and distinct name, eg. 1 for FileName1 and 2 for FileName2 etc
'''FileName1'''= Le nom du fichier, ou le nom du fichier + les paramètres pour les Plugins de type EXE, du 1er élément du menu déroulant. Pour les Plugins de type COM Button et COM MHO_Button, mettre un nom arbitraire et distinct, ex. 1 pour FileName1 et 2 pour FileName2 etc.
   
   




'''Install Maxthon Plugin'''
'''Installation d'un Plugin de Maxthon'''


Maxthon plugins are installed in the "Plugin" folder inside Maxthon's installation folder. Every plugin has own dedicated plugin folder which contains the plugin.ini file and other necesary files and/or subfolders.
Les Plugins de Maxthon sont installés dans le répertoire "Plugin" du dossier d'installation de Maxthon. Chaque Plugin possède son propre dossier dédié qui contient le fichier plugin.ini et les autres fichiers nécessaires et/ou sous-dossiers.


A finished plugin, comprising the plugin folder and all files and/or subfolders inside can be compressed into a ZIP file (*.zip) for released.
Un Plugin terminé, comprenant le dossier du Plugin et tous les fichiers et/ou sous-dossiers peut-être compressé dans un fichier ZIP (*.zip) pour être déployé.




'''Maxthon 2.0'''
'''Maxthon 2.0'''
   
   
Maxthon 2.0 supports custom M2P plugin installation pack (essentially a *.zip renamed to *.m2p. Plugin will be installed when the M2P file is doubleclicked or dragged into Maxthon's browser window.
Maxthon 2.0 supporte un pack d'installation M2P de plugins (essentiellement un *.zip renommé en *.m2p. Le Plugin sera installé lorsque le fichier M2P est double-cliqué ou par glisser/déplacer dans la fenêtre de Maxthon.


'''Maxthon 1.X'''
'''Maxthon 1.X'''
   
   
Plugins are installed in Maxthon 1.x according to the following procedures:
Les Plugins sont installés dans Maxthon 1.x en suivant cette procédure :
   
   
1. close Maxthon
1. Fermer Maxthon
   
   
2. extract the plugin zip file to the "Plugin" folder inside Maxthon's installation folder. Typically the relevant plugin.ini file will be located C:\Program Files\Maxthon\Plugin\NewPlugin\plugin.ini
2. Extraire le fichier zip du Plugin dans le dossier "Plugin" du répertoire d'installation de Maxthon. En général, le fichier plugin.ini devrait se trouver dans C:\Program Files\Maxthon\Plugin\'''NewPlugin'''\plugin.ini
   
   
3. open Maxthon, the Plugin Installation window will be shown
3. Ouvrir Maxthon, la fenêtre d'installation du Plugin devrait s'afficher
   
   
4. confirm the installation of new plugin
4. Confirmer l'installation du nouveau plugin


== Commandes des Plugins Script de Maxthon ==




Maxthon propose plusieurs commandes pour améliorer la capacité des Plugins Script. Ces commandes peuvent être exécutées par l'intermédiaire de l'objet window.external. Certaines commandes nécessitent un ID de sécurité généré par Maxthon pour pouvoir s'exécuter.




'''Comment obtenir l'ID de sécurité'''


1. Les Plugins Script de type Button peuvent utiliser "%max_security_id" pour l'ID de sécurité
2. Les Plugins Script de type Sidebar et les Plugins HTML de type Button doivent charger "max.src", un script généré par Maxthon. Ensuite "max_security_id" peut être utilisé :
<script src=max.src></script>




'''Référence des commandes des Plugins de Maxthon'''


==Vue d'ensemble==
Sauf indication contraire, les commandes suivantes sont applicables pour Maxthon 2.0 et Maxthon 1.X :
Le navigateur Maxthon a amélioré le support du DHTML de IE en ajoutant plusieurs nouvelles extensions qui peuvent être appelées par un langage de script comme Javascript et VBScript.


Ces APIs peuvent être appelées via l'objet <span style="color: #000066;font-weight: bold;">window</span>.<span style="color: #000066;font-weight: bold;">external</span> dans une page HTML ou par un Plugin de type script réalisé pour Maxthon.
1. '''max_version''' - retourne le numéro de version de Maxthon
Exemple :
alert(external.max_version);


Quelques fonctions nécessiteront <span style="color: #990000;">security_id</span> comme premier paramètre. Ces fonctions peuvent seulement être utilisées par des Plugins.<br /> Afin d'avoir un <span style="color: #990000;">security_id</span> pour votre plugin, vous devez procéder ainsi :
2. '''max_language_id''' - retourne l'ID de langue de Maxthon
Exemple :
alert(external.max_language_id);


====Plugins de type Bouton====
Note : Maxthon 2.0 et Maxthon 1.X ont un format d'ID de langue différent
Insérez un <span style="color: #990000;">%max_security_id</span> dans votre script, comme ceci :


<span style="color: #000066;font-weight: bold;">var</span> security_id=<span style="color: #990000;">%max_security_id</span><nowiki>;</nowiki>
3. '''tab_count''' - retourne le nombre d'onglets ouverts dans Maxthon
Exemple :
alert(external.tab_count);


Ainsi vous pourrez utiliser la variable <span style="color: #990000;">security_id</span> dans votre script.
4. '''cur_sel''' - retourne l'index de l'onglet en cours de Maxthon
Exemple :
alert(external.cur_sel);


====Plugins de type Barre latérale====
5. '''m2_plugin_folder( security_id , plugin_name )''' - retourne le chemin du dossier du Plugin spécifié
Un fichier nommé <span style="color: #990000;">max.src</span> sera créé dans le dossier de votre Plugin, inclure ce fichier dans votre fichier HTML :
Exemple :
alert(external.m2_plugin_folder( %max_security_id , 'ViewSource!'));


<<span style="color: #000066;font-weight: bold;">script</span> <span style="color: #990000;">type</span><nowiki>=</nowiki><span style="color: #0000FF;">"text/javascript"</span> <span style="color: #990000;">src</span><nowiki>=</nowiki><span style="color: #0000FF;">"max.src"</span>></<span style="color: #000066;font-weight: bold;">script</span>>
6. '''m2_run_cmd( security_id , command_id )''' - exécute l'ID de la commande spécifiée
Exemple :
                external. m2_run_cmd( %max_security_id , 32772 ));
Note: Maxthon 2.0 et Maxthon 1.X ont des ID de commande différents. Les ID des commandes se trouvent dans le fichier langue de Maxthon.


Ainsi vous pourrez utiliser la variable <span style="color: #990000;">max_security_id</span> comme paramètre identificateur de sécurité dans votre script.
7. '''get_tab( security_id , tab_index )''' - retourne l'objet Windows de l'onglet spécifié
Exemple :
var oWin=external.get_tab(%max_security_id, 0);
alert(oWin.document.URL);
8. '''activate_tab( security_id , tab_index )''' - active l'onglet spécifié
Exemple :
external.activate_tab(%max_security_id, 0);
9. '''close_tab( security_id , tab_index )''' - ferme l'onglet spécifié
Exemple :
external.close_tab(%max_security_id, 0);
10. '''readFile( security_id, plugin_name, file_name)''' - lit le contenu du fichier texte spécifié
Example :
var sText=external.readFile(%max_security_id, 'ViewPage', 'readme.txt');
alert(sText);


==Index==
11. '''writeFile( security_id, plugin_name, file_name, content )''' - écrit le contenu dans le fichier texte spécifié
Exemple :
external.writeFile(%max_security_id, 'ViewPage', 'test.txt', 'Ceci est le contenu du fichier');


====Propriétés étendues====
12. '''m2_readIni( security_id, plugin_name , file_name , section_name , key , default_value)''' - lit les données du fichier INI spécifié
* [[#max_version|max_version]] : Obtenir la version courante de Maxthon
* [[#max_language_id|max_language_id]] : Obtenir l'id de la langue courante de l'interface utilisateur de Maxthon
Exemple :
* [[#current_tab|current_tab (cur_sel)]] : Obtenir l'index de l'onglet en cours
var sDownloadTool=external.m2_readIni(%max_security_id, 'ViewPage', 'plugin.ini', 'Settings', 'Tool', '');
* [[#tab_count|tab_count]] : Obtenir le nombre d'onglets ouvert en cours
alert(sDownloadTool);


====Méthodes générales====
13. '''m2_writeIni( security_id , plugin_name , file_name , section_name , key , value )''' - écrit les données dans le fichier INI spécifié
* [[#addFavorite|addFavorite()]] : Appeler la boîte de dialogue Ajouter un Favori
* [[#addProxy|addProxy()]] : Appeler la boîte de dialogue Ajouter un Proxy
Exemple :
* [[#addFilter|addFilter()]] : Appeler la boîte de dialogue Ajouter un Filtre
external.m2_writeIni(%max_security_id, 'ViewPage', 'test.ini', 'Config', 'height', '100px');
* [[#max_addProxyProvider|max_addProxyProvider()]] : Appeler la boîte de dialogue Ajouter un Fournisseur de Proxy
* [[#m2_run_cmd|m2_run_cmd()]] : Exécuter la fonction de Maxthon correspondant à la commande ID
* [[#m2_search_text|m2_search_text()]] : Obtenir la chaîne de recherche de la barre de recherche de Maxthon
* [[#m2_plugin_folder|m2_plugin_folder()]] : Obtenir le dossier local des Plugins


====Méthodes associées aux onglets====
14. '''max_modelessDialog( security_id , url , option , attr , window )''' - retourne une page de dialogue en mode Web
* [[#get_tab|get_tab()]] : Obtenir l'objet d'un onglet par index
* [[#activate_tab|activate_tab()]] : Activer un onglet par index
Exemple :
* [[#close_tab|close_tab()]] : Fermer un onglet par index
var oDialog= external.max_modelessDialog( %max_security_id , 'blank.html', window , '', window );
var oDoc=oDialog.document;
oDoc.write('Testing');
oDoc.close();


====Méthodes associées aux fichiers====
15. '''max_activex(security_id ,program_id)''' - retourne l'objet ActiveX spécifié
* [[#readFile|readFile()]] : Lire le contenu d'un fichier
* [[#writeFile|writeFile()]] : Ecrire des données dans un fichier
Exemple :
* [[#m2_readIni|m2_readIni()]] : Lire un fichier INI
var oWSH=external.max_activex(%max_security_id, 'WScript.Shell');
* [[#m2_writeIni|m2_writeIni()]] : Ecrire dans un fichier INI
oWSH.run('notepad.exe');


16. '''m2_search_text(security_id)''' - retourne le texte de la barre de recherche
Exemple :
alert(m2_search_text(%max_security_id));


==Propriétées étendues==
17. '''max_callback(event_name)''' - une fonction qui est exécutée lorsque certains événements de Maxthon se produisent (pour les Plugins HTML de type Button et les Plugins Script de type Sidebar)
Les Plugins HTML de type Button et les Plugins Script de type Sidebar peuvent utiliser la fonction max_callback pour réagir à certains événements de Maxthon comme le changement d'onglet.
Exemple :
function max_callback(x){
if(x=='tab_change') alert('L'onglet en cours a changé.');
}


===max_version===
En testant le paramètre de la fonction max_callback, le Plugin peut récupérer les événements suivants :
<div style="margin-left: 10px;">
'''Plugins HTML de type Button'''


====Remarques :====
'''tab_change''' – après que l'onglet en cours ait changé
Cette propriété retournera une chaîne de caractères indiquant le numéro de version de Maxthon.<br /> La chaîne sera formatée de la façon suivante : <span style="color: #0000FF;">"2.1.0.600"</span>.


Il est suggéré d'utiliser cette propriété pour déterminer si Maxthon est en cours d'exécution.
'''document_Complete''' - après que l'onglet en cours soit entièrement chargé


====Exigences :====
'''self_destroy''' - lorsque le HTML est déchargé, normalement lorsque Maxthon est fermé
Maxthon version 2.0+<br /><br />


====Exemple :====
<div style="margin: 5px;padding: 10px;background: #F3F3F3;border: 1px dashed #CCCCCC;"><span style="color: #000066;font-weight: bold;">alert</span>(<span style="color: #0000FF;">'Maxthon Version: '</span>+<span style="color: #000066;font-weight: bold;">external</span>.<span style="color: #000066;font-weight: bold;">max_version</span>);</div></div>


'''Plugins Script de type Sidebar'''


===max_language_id===
'''sidebar_tab_change''' - après changement de l'onglet actif
<div style="margin-left: 10px;">


====Remarques :====
'''sidebar_activate''' - lorsque le Plugin Sidebar est activé
Cette propriété retournera l'ID de la langue en cours d'utilisation dans Maxthon.


L'ID de la langue a été modifié afin d'utiliser l'identificateur de langage défini dans Microsoft Windows depuis Maxthon v2.0. <br /> la liste des ID utilisés par Maxthon se trouve ici :<br />http://msdn.microsoft.com/library/?url=/library/en-us/intl/nls_238z.asp
'''sidebar_deactivate''' - lorsque le Plugin Sidebar est désactivé


====Exigences :====
'''sidebar_unload''' - lorsque le Plugin Sidebar est déchargé (Maxthon est fermé)
Maxthon version 1.0+<br /><br />


====Exemple :====
<span style="color: #000066;font-weight: bold;">alert</span>(<span style="color: #0000FF;">'Language ID='</span>+<span style="color: #000066;font-weight: bold;">external</span>.<span style="color: #000066;font-weight: bold;">max_language_id</span>);
</div>


18. '''max_getObj''' (pour Maxthon 2.0 seulement) - retourne plusieurs objets de Maxthon :


====current_tab==== '''(formerly''' cur_sel ''')''' <span style="color: #FFFFFF;background-color: #CC0000;">Non encore implémenté</span>
'''Info''' - information générale sur Maxthon
<div style="margin-left: 10px;">


=====Remarques :=====
'''Adhunter''' à propos du tueur de pubs
Cette propriété retournera un nombre entier qui représente l'index de l'onglet qui est actif.<br /><span style="color: #990000;">null</span> sera retourné s'il n'y a auncun onglet d'ouvert.<br /><span style="color: #000066;font-weight: bold;">current_tab</span><span style="color: #CC0000;font-weight: bold;"> a été introduit dans Maxthon v2.0 en remplacement de </span><span style="color: #000066;font-weight: bold;">cur_sel</span><span style="color: #CC0000;font-weight: bold;"> <br>parce que le nom de l'ancienne propriété était trop obscur à comprendre.</span><br /><br />


=====Exigences :=====
'''FavManager''' – à propos des Favoris
Maxthon version 2.0+ (utiliser <span style="color: #000066;font-weight: bold;">cur_sel</span> pour les versions 1.x)<br /><br />


=====Exemple :=====
'''RssManager''' – à propos des flux RSS
<div style="margin: 5px;padding: 10px;background: #F3F3F3;border: 1px dashed #CCCCCC;"><span style="color: #000066;font-weight: bold;">alert</span>(<span style="color: #0000FF;">'Current Tab Index: '</span>+<span style="color: #000066;font-weight: bold;">external</span>.<span style="color: #000066;font-weight: bold;">current_tab</span>);</div></div>


'''PluginManager''' - à propos des Plugins, pour Maxthon 2.0.5 ou supérieur


====tab_count====
<div style="margin-left: 10px;">


=====Remarques :=====
Exemple :
Cette propriété retournera le nombre d'onglet en cours sous la forme d'un entier.<br /><br />
var oInfo=external.max_getObj(%max_security_id, 'info');


=====Exigences :=====
Maxthon version 1.0+<br /><br />


=====Exemple :=====
'''L'objet Info supporte les propriétés et méthodes suivantes :'''
<span style="color: #000066;font-weight: bold;">alert</span>(<span style="color: #0000FF;">'Tabs Count: '</span>+<span style="color: #000066;font-weight: bold;">external</span>.<span style="color: #000066;font-weight: bold;">tab_count</span>);
</div>
Propriétés :


'''fileProxy''' - en lecture seule, retourne le chemin du document de configuration du Proxy utilisateur en cours.
Exemple :
var oInfo=external.max_getObj(%max_security_id, 'info');
alert(oInfo.fileProxy);


==Méthodes générales==
'''folderUser''' - en lecture seule, retourne le chemin du dossier du profil de l'utilisateur en cours
 
Exemple :
var oInfo=external.max_getObj(%max_security_id, 'info');
alert(oInfo. folderUser);


====addFavorite(''url'' '''[''', ''title''''']''')====
Méthodes :
<div style="margin-left: 10px;">
'''getFolderPluginData(plugin_name)''' - obtient le chemin du dossier de stockage des données d'un Plugin pour l'utilisateur en cours et le Plugin indiqué
Exemple :
var oInfo=external.max_getObj(%max_security_id, 'info');
alert(oInfo.getFolderPluginData('ViewSource!'));


=====Paramètres :=====
''url'' : chaîne<br /> L'url à ajouter.<br /><br />''title'' : chaîne<br /> Optionnel. Le titre de l'url.<br /><br />


=====Remarques :=====
'''L'object AdHunter supporte les méthodes suivantes :'''
  Affiche la boîte de dialogue Ajouter un Favori pour demander à l'utilisateur d'ajouter un nouveau Favori.<br /> Cette fonction retournera <span style="color: #CC0000;font-weight: bold;">faux</span> si l'utilisateur a annulé cette opération.<br /><br />
   
Méthodes :


=====Exigences :=====
'''reloadFilter(filter_name)''' – recharge le filtre de Maxthon spécifié (actuellement seulement les filtres de contenu) après avoir modifié le filtre en question
Maxthon version 1.0+<br /><br />
Exemple :
var oAdHunter=external.max_getObj(%max_security_id, 'AdHunter');
oAdHunter.reloadFilter('content');


=====Exemple :=====
'''enableFilter(filter_name, bEnable)''' – active ou désactive le filtre de 'contenu' ou de 'Popup' de Maxthon
<span style="color: #000066;font-weight: bold;">external</span>.<span style="color: #000066;font-weight: bold;">addFavorite</span>(<span style="color: #0000FF;">"http://www.maxthon.com"</span>);
   
 
Exemple :
<span style="color: #000066;font-weight: bold;">external</span>.<span style="color: #000066;font-weight: bold;">addFavorite</span>(<span style="color: #0000FF;">"http://www.maxthon.com"</span>, <span style="color: #0000FF;">"Site officiel de Maxthon"</span>);
var oAdHunter=external.max_getObj(%max_security_id, 'AdHunter');
</div>
oAdHunter.enableFilter ('content', false);
 
 
====addProxy(''name'', ''address'', ''type'')====
<div style="margin-left: 10px;">
 
=====Paramètres :=====
''name'' : chaîne<br /> Le nom du Proxy.<br /><br />''address'' : chaîne<br /> L'adresse IP ou le nom de domaine du Proxy.<br /><br />''type'' : entier<br /> Un nombre indiquant la vitesse du Proxy.<br /> = Proxy HTTP, <span style="color: #FF6600;">1</span> = Proxy SOCKS4A, <span style="color: #FF6600;">2</span> = Proxy SOCKS5<br /><br />
 
=====Remarques :=====
Ajoute un nouveau Proxy dans liste des Proxy de Maxthon. Une boîte de dialogue sera présentée à l'utilisateur.<br /> Cette fonction retournera <span style="color: #CC0000;font-weight: bold;">faux</span> si l'utilisateur a annulé cette opération.<br /><br />
 
=====Exigences :=====
Maxthon version 2.0+<br /><br />
 
=====Exemple :=====
<span style="color: #000066;font-weight: bold;">external</span>.<span style="color: #000066;font-weight: bold;">addProxy</span>(<span style="color: #0000FF;">"My proxy"</span>,<span style="color: #0000FF;">"192.168.1.0:8080"</span>, <span style="color: #FF6600;">1</span>);
</div>
 
 
====addFilter(''url_mask'', ''type'')====
<div style="margin-left: 10px;">
 
=====Paramètres :=====
''url_mask'' : chaîne<br /> Masque d'adresse qui correspond aux adresses à bloquer. Supporte les expressions régulières.<br /><br />''type'' : entier<br /> Un nombre indiquant la liste de filtres à ajouter.<br /> = Filtre de Popup, <span style="color: #FF6600;">1</span> = Filtre de contenu<br /><br />
 
=====Remarques :=====
Ajoute une nouvelle politique de filtrage dans Maxthon. Une boîte de dialogue sera présentée à l'utilisateur.<br /> Cette fonction retournera '''faux''' si l'utilisateur a annulé cette opération.<br /><br />
 
=====Exigences :=====
  Maxthon version 2.0+<br /><br />
 
=====Exemple :=====
<span style="color: #000066;font-weight: bold;">external</span>.<span style="color: #000066;font-weight: bold;">addFilter</span>(<span style="color: #0000FF;">"http://www.advertisement.com/img/*"</span>, );
</div>
 
 
====max_addProxyProvider(''URL'')====
<div style="margin-left: 10px;">
 
=====Paramètres :=====
''URL'' : chaîne<br /> L'URL du fichier de la liste des Proxy. Pour le format du fichier, se reporter à [proxyprovider.htm ce document].<br /><br />
 
=====Remarques :=====
Ajoute un nouveau fournisseur de Proxy dans Maxthon. Une boîte de dialogue sera présentée à l'utilisateur.<br /> Cette fonction retournera <span style="color: #CC0000;font-weight: bold;">faux</span> si l'utilisateur a annulé cette opération.<br /><br />
 
=====Exigences :=====
Maxthon version 2.0+<br /><br />
 
=====Exemple :=====
<span style="color: #000066;font-weight: bold;">external</span>.<span style="color: #000066;font-weight: bold;">max_addProxyProvider</span>(<span style="color: #0000FF;">"http://www.freeproxy.cn/m2proxy/proxylist.xml"</span>);
</div>
 
 
====m2_run_cmd(''security_id'', ''command_id'')====
<div style="margin-left: 10px;">
 
=====Paramètres :=====
''security_id'' : chaîne<br /> ID de sécurité de Maxthon.<br /><br />''command_id'' : entier<br /> L'ID de la commande interne de Maxthon.<br /><br />
 
=====Remarques :=====
Cette fonction appellera une commande de Maxthon avec le ''command_id'' spécifié.<br /> De nombreux ID de commande peuvent être trouvés dans le fichier langage dans le répertoire langage de Maxthon.<br /><span style="color: #CC0000;font-weight: bold;">L'ID de la commande peut être différent suivant la version.<br> N'utilisez pas cette fonction si ce n'est pas nécessaire.</span><br /><br />
 
=====Exigences :=====
Maxthon version 1.0+<br /><br />
 
=====Exemple :=====
<span style="color: #000066;font-weight: bold;">external</span>.<span style="color: #000066;font-weight: bold;">m2_run_cmd</span>(<span style="color: #0000FF;">security_id</span>, <span style="color: #FF6600;">32772</span>); // Ouvre une page vierge
</div>
 
 
====m2_search_text(''security_id'')====
<div style="margin-left: 10px;">
 
=====Paramètres :=====
''security_id'' : chaîne<br /> ID de sécurité de Maxthon.<br /><br />


=====Remarques :=====
Cette fonction retournera le texte de la barre de recherche de Maxthon sous la forme d'une chaîne.<br /><br />


=====Exigences :=====
'''L'objet PluginManager supporte les méthodes suivantes :'''
Maxthon version 1.2+<br /><br />


=====Exemple :=====
'''getPluginFolder''' - retourne le chemin du dossier principal du Plugin de Maxthon
<span style="color: #000066;font-weight: bold;">var</span> searchText=<span style="color: #000066;font-weight: bold;">external</span>.<span style="color: #000066;font-weight: bold;">m2_search_text</span>(<span style="color: #0000FF;">security_id</span>);
</div>


Exemple :
var oPluginManager=external.max_getObj(%max_security_id, 'PluginManager');
alert(oPluginManager.getPluginFolder)


====m2_plugin_folder(''security_id'', ''plugin_name'')====
'''getCount''' - retourne le total de tous les Plugins installés, qu'ils soient activés ou non
<div style="margin-left: 10px;">


=====Paramètres :=====
Exemple :
''security_id'' : chaîne<br /> ID de sécurité de Maxthon.<br /><br />''plugin_name'' : chaîne<br /> Le nom du Plugin comme défini dans le fichier plugin.ini.<br /><br />
var oPluginManager=external.max_getObj(%max_security_id, 'PluginManager');
alert(oPluginManager.getCount)


=====Remarques :=====
'''getList''' - retourne une liste qui contient des informations comme le nom, l'auteur, etc. de tous les Plugins
Cette fonction retournera le dossier local du Plugin spécifié sous la forme d'une chaîne.<br /><br />


=====Exigences :=====
Exemple :
Maxthon version 1.2+<br /><br />
var oPluginManager=external.max_getObj(%max_security_id, 'PluginManager');
alert(oPluginManager.getList)


=====Exemple :=====
'''getPlugin(Index)''' - Index est un nombre, retourne les objets du Plugin correspondant
<span style="color: #000066;font-weight: bold;">var</span> pluginPath=<span style="color: #000066;font-weight: bold;">external</span>.<span style="color: #000066;font-weight: bold;">m2_plugin_folder</span>(<span style="color: #0000FF;">security_id</span>, <span style="color: #0000FF;">"ViewSource!"</span>);
</div>


Exemple :
var oPluginManager=external.max_getObj(%max_security_id, 'PluginManager');
var oPlugin=oPluginManager.getPlugin(0);


====m2_callerName(''security_id'', ''plugin_name'')====
<div style="margin-left: 10px;">


=====Paramètres :=====
'''L'objet Plugin retourné de getPlugin(Index) supporte les propriétés et méthodes suivantes :'''
''security_id'' : chaîne<br /> ID de sécurité de Maxthon.<br /><br />''plugin_name'' : chaîne<br /> Le nom du Plugin comme défini dans le fichier plugin.ini.<br /><br />


=====Remarques :=====
Propriétés :
Cette fonction indiquera à Maxthon la fonction suivante appelée à partir du Plugin.<br />Cette fonction est habituellement utilisée avant l'ouverture de la méthode <span style="color: #000066;font-weight: bold;">window</span>.<span style="color: #000066;font-weight: bold;">open</span>() <br>pour bypasser le bloqueur de Popup de Maxthon pour le Plugin.<br /><br />


=====Exigences :=====
'''title''' - lecture seule, retourne le nom du Plugin
Maxthon version 1.2+<br /><br />


=====Exemple :=====
Exemple :
<span style="color: #000066;font-weight: bold;">external</span>.<span style="color: #000066;font-weight: bold;">m2_callerName</span>(<span style="color: #0000FF;">security_id</span>, <span style="color: #0000FF;">"ViewSource!"</span>);<br /><span style="color: #000066;font-weight: bold;">window</span>.<span style="color: #000066;font-weight: bold;">open</span>(<span style="color: #0000FF;">"about:blank"</span>);
alert(oPlugin.title);
</div>


'''folderName''' - lecture seule, retourne le nom du dossier du Plugin


====max_actSideBarItem(''plugin_name'')====
Exemple :
<div style="margin-left: 10px;">
alert(oPlugin.folderName);


=====Paramètres :=====
'''fullPath''' - lecture seule, retourne le chemin complet du dossier du Plugin
''plugin_name'' : chaîne<br /> Le nom du Plugin comme défini dans le fichier plugin.ini.


=====Remarques :=====
Exemple :
Cette fonction activera le Plugin de la barre latérale avec le nom indiqué. <br /><br />
alert(oPlugin.fullPath);


=====Exigences :=====
'''enable''' - lecture/écriture, retourne ou définit si le Plugin est actif
Maxthon version 1.2+<br /><br />


=====Exemple :=====
Exemple :
<span style="color: #000066;font-weight: bold;">external</span>.<span style="color: #000066;font-weight: bold;">max_actSideBarItem</span>(<span style="color: #0000FF;">"Calculator++"</span>);
oPlugin.enable=false;
</div>
alert(oPlugin.enable);
oPlugin.enable=true;
alert(oPlugin.enable);


'''startAfterPageDone''' - lecture/écriture, retourne ou définit si le Plugin est en démarrage automatique


====max_modelessDialog(''security_id'', ''url'', ''arguments'', ''features'', ''parent_window'')====
Exemple :
<div style="margin-left: 10px;">
oPlugin.startAfterPageDone = true;
alert(oPlugin.startAfterPageDone);
oPlugin.startAfterPageDone = false;
alert(oPlugin.startAfterPageDone);


=====Paramètres :=====
'''startAfterPageDoneUrl''' - lecture/écriture, retourne ou définit l'adresse pour laquelle le Plugin sera démarré automatiquement
''security_id'' : chaîne<br /> ID de sécurité de Maxthon.<br /><br />''url'' : chaîne<br /> L'url du contenu de la boîte de dialogue.<br /><br />''arguments'' : variante<br /> Les arguments passés à l'objet '''window.dialogArguments''' de la boîte de dialogue .<br /><br />''features'' : chaîne<br /> Une chaîne qui spécifie les caractéristiques de la fenêtre de la boîte de dialogue.<br /><br />''parent_window'' : objet<br /> La racine de l'objet '''window''' de la boîte de dialogue.


=====Remarques :=====
Exemple :
Cette fonction est à peu près la même que '''window.showModelessDialog()''' mais avec 2 paramètres de plus.<br /> Avec le ''security_id'' votre Plugin peut bypasser le bloqueur de Popup de Maxthon.<br /> Avec le ''parent_window'' vous pouvez créer la boîte de dialogue qui est une fille d'une autre '''window''' de l'onglet.<br /><br />
oPlugin.startAfterPageDoneUrl='*maxthon.com*|*maxthon.cn*';
alert(oPlugin.startAfterPageDoneUrl);


=====Exigences :=====
Mêthodes :
Maxthon version 1.2+<br /><br />


=====Exemple :=====
'''config()''' - ouvre la boîte de dialogue de configuration du Plugin (config.html)
<span style="color: #000066;font-weight: bold;">external</span>.<span style="color: #000066;font-weight: bold;">max_modelessDialog</span>(<span style="color: #0000FF;">security_id</span>, <span style="color: #0000FF;">"about:blank"</span>, {"userid": 7, "key": "d3fe3asd"}, <span style="color: #0000FF;">"status:no; help:no; resizable:yes; scroll:yes;"</span>, window);
</div>


Exemple :
oPlugin.config();


====get_tab(''security_id'', ''index'')====
'''remove()''' - supprime le Plugin
<div style="margin-left: 10px;">


=====Paramètres :=====
Exemple :
''security_id'' : chaîne<br /> ID de sécurité de Maxthon.<br /><br />''index'' : entier<br /> L'index de l'onglet à obtenir.<br /><br />
oPlugin.remove();


=====Remarques :=====
== Mscript ==
Cette fonction obtiendra l'objet '''window''' de l'onglet spécifié dans Maxthon.<br /><span style="color: #990000;">null</span> sera retourné si l'onglet n'existe pas.<br /><br />


=====Exigences :=====
Maxthon 2.0 supporte des mscripts personnalisés en plus des scripts pour les Plugins de type Button. Contrairement aux scripts normaux, les mscripts ne sont pas exécutés sur des pages Web ,ainsi les mscripts ne sont pas sujets aux restrictions de sécurité imposées aux scripts normaux,et on ne doit donc pas craindre qu'ils soient exploités par des pages Web. Les mscripts peuvent grandement améliorer les fonctionnalités des Plugins car ils peuvent fonctionner malgré la désactivation des scripts classiques et aussi accéder aux contenus des différentes frames d'une page web même si elles ne sont pas dans le même domaine.
Maxthon version 1.0+<br /><br />
Pour utiliser mscript dans un Plugin de type Button, remplacez la balise <script...> par <mscript...>


=====Exemple :=====
<span style="color: #000066;font-weight: bold;">var</span> objTab=<span style="color: #000066;font-weight: bold;">external</span>.<span style="color: #000066;font-weight: bold;">get_tab</span>(<span style="color: #0000FF;">security_id</span>, <span style="color: #FF6600;">5</span>);
</div>


Exemple - le Plugin de type Button peut désactiver les scripts dans la page en cours en modifiant le contrôle de contenu de Maxthon :


====activate_tab(''security_id'', ''index'')====
<script language="javascript">
<div style="margin-left: 10px;">
external.m2_run_cmd(%max_security_id, 33175);
</script>


=====Paramètres :=====
Mais après que les scripts aient été désactivés, le Plugin ne peut plus fonctionner. Ainsi, il ne pourra plus réactiver les scripts dans la page en cours. Au contraire, le Plugin mscript suivant peut fonctionner avec les scripts désactivés, ainsi il pourra réactiver les scripts dans la page en cours.
''security_id'' : chaîne<br /> ID de sécurité de Maxthon.<br /><br />''index'' : entier<br /> L'index de l'onglet à activer.<br /><br />


=====Remarques :=====
<mscript language="javascript">
  Cette fonction activera l'onglet spécifié dans Maxthon.<br /> Il ne se passera rien si l'onglet n'existe pas.<br /><br />
  external.m2_run_cmd(0, 33175);
</script>


=====Exigences :=====
Notez qu'un nombre arbitraire peut être utilisé comme %max_security_id lorsque le mscript est utilisé.
Maxthon version 1.0+<br /><br />


=====Exemple :=====
<span style="color: #000066;font-weight: bold;">external</span>.<span style="color: #000066;font-weight: bold;">activate_tab</span>(<span style="color: #0000FF;">security_id</span>, <span style="color: #FF6600;">1</span>);
</div>


==Créer un Plugin multilingue==
Lien original :[http://forum.maxthon.com/index.php?showtopic=62954]


====close_tab(''security_id'', ''index'')====
Il existe plusieurs façons de faire un Plugin multilingue. Personnellement j'ai utilisé la méthode suivante que je trouve assez pratique pour les auteurs et les traducteurs de Plugins :
<div style="margin-left: 10px;">


=====Paramètres :=====
Pour les auteurs de Plugins
''security_id'' : chaîne<br /> ID de sécurité de Maxthon.<br /><br />''index'' : entier<br /> Entier. L'index de l'onglet à fermer.<br /><br />


=====Remarques :=====
# Dans le dossier des Plugins, créer un sous-dossier "Language" qui contiendra les fichiers de langue
Cette fonction fermera l'onglet représentant l'''index''.<br /> Il ne se passera rien si l'onglet n'existe pas.<br /><br />
# Créer le fichier de langue anglaise par défaut (créer un fichier texte et le nommer "0x0409.ini", "0x0409" est l'ID de la langue anglaise)
# Ouvrir le fichier avec un éditeur de texte et ajouter les chaînes de caractères nécessaires, eg.


=====Exigences :=====
Maxthon version 1.0+<br /><br />


=====Exemple :=====
[General]
<span style="color: #000066;font-weight: bold;">external</span>.<span style="color: #000066;font-weight: bold;">close_tab</span>(<span style="color: #0000FF;">security_id</span>, );
01=Hello!
</div>
02=This is testing.
...


Ici les chaînes de caractères "01", "02", "..." etc. sont ajoutées sous la section "General".


====readFile(''security_id'', ''plugin_name'', ''file_name'')====
<div style="margin-left: 10px;">


=====Paramètres :=====
Pour les Plugins de barre de boutons, ajouter la fonction suivante (remplacer "Test" par le nom de votre Plugin) dans le script du Plugin :
''security_id'' : chaîne<br /> ID de sécurité de Maxthon.<br /><br />''plugin_name'' : chaîne<br /> Le nom du Plugin appelé indiqué dans le fichier plugin.ini<br /><br />''file_name'' : chaîne<br /> Le ficher à lire.<br /><br />


=====Remarques :=====
Cette fonction peut seulement être utilisée dans un Plugin.<br /> La fonction retournera le contenu du fichier dans une chaîne en cas de succès.<br /> Si le Plugin n'est pas actif ou que le ''plugin_name'' n'est pas trouvé, la fonction échouera et retournera '''null'''.<br /><br />


=====Exigences :=====
function getStr(x){
  Maxthon version 1.0+<br /><br />
    var sString=external.m2_readIni(%max_security_id, 'Test', 'Language/'+external.max_language_id+'.ini', 'General', x, ''''''');
    if(!sString) sString=external.m2_readIni(%max_security_id, 'Test', 'Language/0x0409.ini', 'General', x, ''''''');
    return(sString);
  }


=====Exemple :=====
<span style="color: #000066;font-weight: bold;">var</span> strFile=<span style="color: #000066;font-weight: bold;">external</span>.<span style="color: #000066;font-weight: bold;">readFile</span>(<span style="color: #0000FF;">security_id</span>, <span style="color: #0000FF;">"Test plugin"</span>, <span style="color: #0000FF;">"plugin.ini"</span>);<br />
</div>


Pour les Plugin de Barre latérale, ajouter les scripts suivants dans l'entête de la section du fichier HTML :


====writeFile(''security_id'', ''plugin_name'', ''file_name'', ''content'')====
<div style="margin-left: 10px;">


=====Paramètres :=====
<script src=max.src></script>
''security_id'' : chaîne<br /> ID de sécurité de Maxthon.<br /><br />''plugin_name'' : chaîne<br /> Le nom du Plugin appelant comme indiqué dans le fichier plugin.ini<br /><br />''file_name'' : chaîne<br /> Le fichier à écrire.<br /><br />''content'' : chaîne<br /> Chaîne du contenu du fichier à écrire.<br /><br />
<script>
function getStr(x){
    var sString=external.m2_readIni(max_security_id, 'Test', 'Language/'+external.max_language_id+'.ini', 'General', x, ''''''');
    if(!sString) sString=external.m2_readIni(max_security_id, 'Test', 'Language/0x0409.ini', 'General', x, ''''''');
    return(sString);
}
</script>


=====Remarques :=====
Maintenant la fonction "getStr" peut être utilisée pour récupérer les chaînes de caractères à partir des fichiers de langue. Par exemple "getStr('01')" essayera de récupérer chaîne de caractères "01" à partir du fichier langue qui correspond à la langue sélectionnée dans Maxthon. Si le fichier langue n'est pas trouvé, il récupèrera la chaîne de caractères "01" à partir du fichier de langue anglaise par défaut.
Cette fonction ne peut être utilisée que dans un Plugin.<br /> Cette fonction retournera <span style="color: #CC0000;font-weight: bold;">vrai</span> en cas de succès.<br /> Si le fichier n'est pas trouvé, le plugin n'est pas actif ou le ''plugin_name'' n'est pas trouvé, <br /> la fonction échouera et retournera <span style="color: #CC0000;font-weight: bold;">faux</span>.<br /> <span style="color: #CC0000;font-weight: bold;">Si un fichier avec le même nom existe, il sera écrasé.</span><br /><br />


=====Exigences :=====
Maxthon version 1.0+<br /><br />


=====Exemple :=====
Pour les traducteurs
<span style="color: #000066;font-weight: bold;">external</span>.<span style="color: #000066;font-weight: bold;">writeFile</span>(<span style="color: #0000FF;">security_id</span>, <span style="color: #0000FF;">"Test plugin"</span>, <span style="color: #0000FF;">"setting.ini"</span>, <span style="color: #0000FF;">"username=abc\npass=qwrxcv"</span>);
</div>


# Récupérer l'identifiant de langue approprié pour votre traduction ici
# Dupliquer le fichier de langue anglaise et renommer le avec l'ID de langue adéquat, ex. 0x040c.ini pour français
# Ouvrir le fichier avec un éditeur de texte et traduire les chaînes de caractères "01=", "02=", "..." etc.
# Enregistrer le fichier au format Unicode pour ne pas avoir de problème d'encodage
# Envoyer le fichier sur le forum ou à l'auteur du Plugin


====m2_readIni(''security_id'', ''plugin_name'', ''file_name'', ''section_name'', ''key'', ''default_value'')====
Mettre le fichier de langue dans le dossier "Language" du Plugin. Il fonctionnera immédiatement si l'utilisateur sélectionne la langue adéquate.
<div style="margin-left: 10px;">


=====Paramètres :=====
''security_id'' : chaîne<br /> ID de sécurité de Maxthon.<br /><br />''plugin_name'' : chaîne<br /> Le nom du Plugin appelant comme indiqué dans le fichier plugin.ini.<br /><br />''file_name'' : chaîne<br /> Le nom du fichier INI à lire.<br /><br />''section_name'' : chaîne<br /> La section INI à lire, sans crochet [ ].<br /><br />''key'' : chaîne<br /> La clé de l'entrée à lire.<br /><br />''default_value'' : chaîne<br /> La valeur par défaut à retourner si la clé n'existe pas.<br /><br />


=====Remarques :=====
Traduire Plugin.ini
Cette fonction lira la valeur de la ''key'' sous la section ''section_name'' dans le fichier INI ''file_name''.<br /> Le fichier INI doit se trouver dans le dossier du Plugin ''plugin_name''.<br /> La valeur sera retournée sous la forme d'une '''string''' en cas de succès.<br /> Si le fichier n'existe pas, la section n'existe pas ou la clé n'existe pas, la ''default_value'' sera retournée.<br /><br />


=====Exigences :=====
En plus de la traduction des chaînes de caractères utilisées par les scripts du Plugin, il est recommandé aux traducteurs de traduire le fichier plugin.ini également. Dans ce cas, les commentaires et le menu déroulant du Plugin, s'ils sont présents, seront affichés dans la langue adéquate. Pour traduire le plugin.ini :
Maxthon version 1.0+<br /><br />


=====Exemple :=====
# Récupérer l'identifiant de langue approprié pour votre traduction ici
<span style="color: #000066;font-weight: bold;">var</span> saveCount = <span style="color: #000066;font-weight: bold;">external</span>.<span style="color: #000066;font-weight: bold;">m2_readIni</span>(<span style="color: #0000FF;">security_id</span>, <span style="color: #0000FF;">"TestPlugin"</span>, <span style="color: #0000FF;">"settings.ini"</span>, <span style="color: #0000FF;">"general"</span>, <span style="color: #0000FF;">"saveCount"</span>, <span style="color: #0000FF;">"0"</span>);
# Dupliquer le fichier plugin.ini et renommez-le par ex. plugin0x040c.ini pour le français
</div>
# Ouvrir le fichier avec un éditeur de texte et traduire les chaînes de caractères pour "Comments", et s'il y en a dans la section "[MyIE2Buttons]", traduire également "Name1", "Name2", ...
# Enregistrer le fichier au format Unicode pour ne pas avoir de problème d'encodage
# Envoyer le fichier sur le forum ou à l'auteur du Plugin


Mettre le fichier plugin.ini dans le dossier du Plugin. Il fonctionnera après le redémarrage de Maxthon et la réinitialisation de la barre de Plugins si l'utilisateur sélectionne la langue adéquate.


====m2_writeIni(''security_id'', ''plugin_name'', ''file_name'', ''section_name'', ''key'', ''value'')====
<div style="margin-left: 10px;">


=====Paramètres :=====
Exemple
''security_id'' : chaîne<br /> ID de sécurité de Maxthon.<br /><br />''plugin_name'' : chaîne<br /> Le nom du Plugin appelant comme indiqué dans le fichier plugin.ini.<br /><br />''file_name'' : chaîne<br /> Le nom du fichier INI à écrire.<br /><br />''section_name'' : chaîne<br /> La section INI à écrire, sans crochet [ ].<br /><br />''key'' : chaîne<br /> La clé de l'entrée à écrire.<br /><br />''value'' : chaîne/entier<br /> La valeur à écrire.<br /><br />


=====Remarques :=====
Le Plugin "Test" contient 2 langues, English (par défaut - 0x0409) et Chinois Simplifié (简体中文 - 0x0804). Essayez de changer la langue de Maxthon et cliquez sur le bouton du Plugin (redémarrer Maxthon et réinitialiser la barre de Plugins est nécessaire pour charger le plugin.ini pour une nouvelle langue). Essayez également d'ajouter un nouveau fichier de langue et un plugin.ini pour votre langue.
Cette fonction écrira une ''key'' et une paire de ''value'' sous la section ''section_name'' dans le fichier INI ''file_name''.<br /> Le fichier INI ne peut être écrit que dans le dossier du Plugin ''plugin_name''.<br /> Si le fichier n'existe pas, la section n'existe pas ou la clé n'existe pas, ils seront créés automatiquement.<br /> Cette fonction retournera <span style="color: #CC0000;font-weight: bold;">vrai</span> en cas de succès et <span style="color: #CC0000;font-weight: bold;">faux</span> en cas d'échec.<br /><br />


=====Exigences :=====
Maxthon version 1.0+<br /><br />


=====Exemple :=====
Texte original : [http://wiki.maxthon.com/index.php/Plugin_Reference_-_Maxthon_2.x Plugin Reference - Maxthon 2.x] traduit par Ldfa et corrigé par Ray1, POLAURENT, Ricouz et Vee.
<span style="color: #000066;font-weight: bold;">external</span>.<span style="color: #000066;font-weight: bold;">m2_writeIni</span>(<span style="color: #0000FF;">security_id</span>, <span style="color: #0000FF;">"TestPlugin"</span>, <span style="color: #0000FF;">"settings.ini"</span>, <span style="color: #0000FF;">"general</span>", <span style="color: #0000FF;">"saveCount"</span>, <span style="color: #FF6600;">25</span>);
</div>




<center>[[Base de connaissances de Maxthon 2.0]]</center>
<center>[[Base de connaissances de Maxthon 2.0]]</center>

Version actuelle datée du 30 décembre 2009 à 09:09

Types de Plugin de Maxthon

Le type de Plugin de Maxthon est défini par ModuleType (Script, HTML, COM et EXE) et Type (Button, Sidebar, Toolbar, COM_Button, MHO, MHO_Button) simultanément :


              Button    SideBar   Toolbar   COM_Button    MHO     MHO_Button
Script         oui       oui
HTML           oui
EXE            oui
COM            oui       oui        oui        oui        oui        oui
COM_Global     oui       oui        oui        oui


1. ModuleType - Script, HTML, EXE, COM et COM_Global

Script - Le Plugin Script peut être de type button, qui exécute un script lorsqu'il est cliqué. le script peut être dans un langage supporté par IE, comme le JavaScript ou le vbscript. Maxthon 2.0 supporte le mscript qui exécute l'environnement (plus de détails ci-après). Le Script peut également être de type sidebar, qui affiche un fichier HTML dans la barre latérale.

HTML - Un nouveau type de Plugin pour Maxthon 2.0 seulement. Le Plugin de type HTML est similaire au Plugin Script Sidebar dans sa nature. La différence majeure est que le Plugin Script Sidebar est affiché dans la barre latérale de Maxthon alors que le Plugin HTML est affiché comme un bouton dans la barre des Plugins ou n'importe quelle barre d'outils (barre d'état, barre des menus, barre des onglets, barre d'adresses...).

EXE - Le Plugin EXE sera affiché comme un bouton sur la barre des Plugins. Le Plugin EXE peut être n'importe quel fichier exécutable. Maxthon peut passer plusieurs paramètres au fichier exécutable comme l'URL de la page Web en cours ou le "handle" de la fenêtre de Maxthon.

COM - Un plugin COM peut instancier l'interface IObjectWithSite pour obtenir un pointeur sur l'onglet actif du navigateur, les évènements et sur le DOM pour toute manipulation .

COM_Global - Les Plugins COM_Global sont créés seulement une fois au démarrage de Maxthon, et sont détruits à la fermeture de Maxthon. Les Plugins COM_Global sont souvent pour les fonctions de navigation qui ne sont pas en relation avec le Document Object Model. Ainsi, les Plugins COM_Global peuvent implémenter une fonction PutMaxCommander à travers l'interface IDispatch pour obtenir un objet du Plugin de Maxthon, qui peut être utilisé de la même façon qu'un objet externe de Maxthon pour les Plugins script (cf. les commandes ci-dessous des Plugins script), pour interagir avec le Document Object Model des onglets et Maxthon.

Notez que Maxthon 2.0 est "multithread" (un "thread" pour chaque onglet). Les Plugins développés pour une interaction approfondie avec le Document Object Model des onglets doivent être développés en COM (par onglet) au lieu de COM_Global ainsi ils pourront fonctionner plus efficacement avec le même "thread" d'un onglet individuel.

2. Type - Button, SideBar, Toolbar, COM_Button, MHO, and MHO_Button

Button - Un bouton sera ajouté sur la barre des Plugins. L'opération spécifiée par le script (Plugin Script), l'exécutable (Plugin EXE), la DLL (Plugin COM) sera exécutée lorsque le bouton sera cliqué. En option, Les Plugins de bouton peuvent implémenter un menu déroulant pour le Plugin. Un Plugin de bouton COM doit implémenter l'interface IOleCommandTarget pour recevoir le clic du bouton. Si un menu est implémenté, la fonction IOleCommandTarget_Exec recevra un id de commande de 1 lorsque le bouton est cliqué, et un id de commande de 2 lorsque le premier item du menu est cliqué, et ainsi de suite. Un Plugin de bouton COM est créé lorsque le bouton est cliqué et est détruit lorsque l'onglet est fermé (comme IE7).

SideBar - Un bouton sera ajouté à la barre latérale, et un élément sera ajouté au menu principal > Affichage > Barre latérale. Lorsque le bouton ou l’élément du menu est cliqué, la barre latérale de Maxthon s'ouvrira et affichera le fichier HTML spécifié par le Plugin (Plugin script), ou la fenêtre spécifiée par le Plugin à travers l'interface IDeskBand (Plugin com ou com_global).

Toolbar - Les Plugins de barre d'outils doivent être écrits en COM. Une nouvelle barre d'outils sera ajoutée, qui pourra être affichée ou cachée à partir du menu principal > Affichage > Barre d'outils. Un Plugin de barre d'outils doit implémenter l'interface IDeskBand pour spécifier la fenêtre de la barre d'outils. Les Plugins de barre d'outils peuvent être COM ou COM_Global. Les Plugins de barre d'outils COM sont affectés à un onglet lorsque l'onglet est crée, et sont détruits lorsque l'onglet est fermé. Cela permet l'adoption de certaines barres d'outils d'IE dans Maxthon en l'état ou avec un minimum de changements. Les barres d'outils COM_Global sont créés uniquement au démarrage de Maxthon, et sont détruites à la fermeture de Maxthon. Une barre d'outils COM_Global peut instancier l'interface IObjectWithSite pour obtenir un pointeur sur l'onglet actif du navigateur à travers la fonction SetSite. Lorsque l'onglet actif est modifié, SetSite sera appelé de nouveau pour passer le pointeur sur le nouvel onglet actif du navigateur.

COM_Button - Les Plugins COM_Button sont identiques au Plugins de barre d'outils, à l'exception près que les Plugins COM_Button sont affichés dans Maxthon comme un bouton, et non pas comme une barre d'outils. Un Plugin COM_Button a la même flexibilité de positionnement dans l'interface de Maxthon que les autres boutons, mais il supporte également la richesse de l'interface d'une barre d'outils par rapport à celle d'un simple bouton.

MHO - Un Plugin MHO est identique au Browser Helper Object d'IE et doit être écrit en COM. Les Plugins MHO sont créés par onglet lorsque l'onglet est créé, et sont détruits lorsque l'onglet est fermé. Les Plugins MHO doivent instancier l'interface IObjectWithSite pour obtenir un pointeur sur l'onglet du navigateur ,de manière à interagir avec le DOM. Les Plugins MHO n'ont pas d'interface.

MHO_Button - Le Plugin MHO est une combinaison d'un Plugin MHO et d'un Plugin bouton COM. Les Plugins MHO_Button sont créés par onglet lorsque l'onglet est créé, et sont détruits lorsque l'onglet est fermé. En plus, une instance de Plugin MHO_Button sera créée lorsque son bouton est cliqué, et l'instance sera détruite lorsque l'opération est terminée. Le Plugin MHO_Button ajoute essentiellement une interface bouton au Plugin MHO.

Créer un Plugin pour Maxthon

Composants majeurs d’un Plugin de Maxthon

Un Plugin de Maxthon contient généralement les fichiers suivants :

Fichiers INI – Le fichier plugin.ini est nécessaire pour tous les Plugins de Maxthon. Il définit plusieurs attributs du Plugin.

Fichiers HTML/DLL/EXE file – Le composant principal nécessaire à tous les Plugins de Maxthon spécifiant l'opération à réaliser ou le contenu à afficher.

Fichier Icônes – L'icône du bouton (*.ICO) nécessaire aux Plugins bouton et barre latérale. Les plugins COM ou EXE peuvent utiliser des icones insérées dans leur code.

Config.html – Un fichier HTML optionnel pour être utilisé avec les Plugins de type Script et HTML comme boîte de dialogue de configuration.


Fichier plugin.ini


[General] nécessaire à la définition de plusieurs attributs du plugin


Name= nom du Plugin

Author= nom de l'auteur

Version= Version du Plugin

ModuleType= Peut être Script, HTML, EXE, COM, or COM_Global

FileName= Peut-être un fichier HTML (Plugins Script et HTML), un fichier DLL (Plugins COM) ou un fichier EXE (Plugins EXE)

Comments= La description affichée dans les options du Plugin et/ou l'info-bulle du Plugin de type Button

Type= Peut être M2Plugin_Button, M2Plugin_Sidebar, M2Plugin_Toolbar, M2Plugin_COM_Button, M2Plugin_MHO, ou M2Plugin_MHO_Button

IdealSize= La largeur et la hauteur de l'interface du Plugin (ex. 120 20, pour un Plugin HTML seulement)

IdealSizeVertical= La largeur et la hauteur de l'interface du Plugin lorsqu'il est positionné verticalement (ex 120 20, optionnel pour un Plugin HTML)

Icon= L'icône du bouton pour les Plugins de type Button ou Sidebar

HotIcon= L'icône du bouton lorsque le bouton du Plugin est survolé

CLSID= Le CSLID pour les Plugins de type COM et COM_Global

DefaultLocation= Optionnel, défini la localisation par défaut de l'icône du Plugin, peut être None (dans la barre des Plugins, mais non affichée après l'installation, l'utilisateur peut afficher le bouton à partir du menu Afficher ou masquer des boutons), MenuBar, ToolBar, ou StatusBar. S’il n'est pas définit, le Plugin sera affiché dans la barre des Plugins. Pour le Plugin de type Button et pour Maxthon 2.0.5 ou supérieur.

StartAfterPageDoneURL= Optionnel, définit les adresses pour lesquelles le Plugin doit démarrer automatiquement, supporte les caractères joker, et on peut utiliser "|" pour séparer les adresses, ex. *maxthon.com*|forum.maxthon.cn*. Si il n'est pas défini, le Plugin démarrera pour toutes les adresses, équivalent à *. Pour les Plugins de types Script et Button et pour Maxthon 2.0.5 ou supérieur.

StartAfterPageDoneURLExclude= Optionnel, définit les adresses pour lesquelles le Plugin ne doit pas démarrer automatiquement, a une priorité supérieure à startAfterPageDoneUrl. Utilise le même format que startAfterPageDoneUrl ex. forum.maxthon.cn/index.php?|*.maxthon.cn/index.php?showtopic*. Pour les Plugins de types Script et Button et pour Maxthon 2.0.5 ou supérieur.


[MyIE2Buttons] Optionnel pour définir le menu déroulant pour les Plugins de types Button et MHO_Button


Count= Le nombre d'éléments du menu déroulant

Name1= Le nom du 1er élément du menu déroulant

FileName1= Le nom du fichier, ou le nom du fichier + les paramètres pour les Plugins de type EXE, du 1er élément du menu déroulant. Pour les Plugins de type COM Button et COM MHO_Button, mettre un nom arbitraire et distinct, ex. 1 pour FileName1 et 2 pour FileName2 etc.


Installation d'un Plugin de Maxthon

Les Plugins de Maxthon sont installés dans le répertoire "Plugin" du dossier d'installation de Maxthon. Chaque Plugin possède son propre dossier dédié qui contient le fichier plugin.ini et les autres fichiers nécessaires et/ou sous-dossiers.

Un Plugin terminé, comprenant le dossier du Plugin et tous les fichiers et/ou sous-dossiers peut-être compressé dans un fichier ZIP (*.zip) pour être déployé.


Maxthon 2.0

Maxthon 2.0 supporte un pack d'installation M2P de plugins (essentiellement un *.zip renommé en *.m2p. Le Plugin sera installé lorsque le fichier M2P est double-cliqué ou par glisser/déplacer dans la fenêtre de Maxthon.

Maxthon 1.X

Les Plugins sont installés dans Maxthon 1.x en suivant cette procédure :

1. Fermer Maxthon

2. Extraire le fichier zip du Plugin dans le dossier "Plugin" du répertoire d'installation de Maxthon. En général, le fichier plugin.ini devrait se trouver dans C:\Program Files\Maxthon\Plugin\NewPlugin\plugin.ini

3. Ouvrir Maxthon, la fenêtre d'installation du Plugin devrait s'afficher

4. Confirmer l'installation du nouveau plugin

Commandes des Plugins Script de Maxthon

Maxthon propose plusieurs commandes pour améliorer la capacité des Plugins Script. Ces commandes peuvent être exécutées par l'intermédiaire de l'objet window.external. Certaines commandes nécessitent un ID de sécurité généré par Maxthon pour pouvoir s'exécuter.


Comment obtenir l'ID de sécurité

1. Les Plugins Script de type Button peuvent utiliser "%max_security_id" pour l'ID de sécurité

2. Les Plugins Script de type Sidebar et les Plugins HTML de type Button doivent charger "max.src", un script généré par Maxthon. Ensuite "max_security_id" peut être utilisé :

	<script src=max.src></script>


Référence des commandes des Plugins de Maxthon

Sauf indication contraire, les commandes suivantes sont applicables pour Maxthon 2.0 et Maxthon 1.X :

1. max_version - retourne le numéro de version de Maxthon

Exemple :

	alert(external.max_version);

2. max_language_id - retourne l'ID de langue de Maxthon

Exemple :

	alert(external.max_language_id);

Note : Maxthon 2.0 et Maxthon 1.X ont un format d'ID de langue différent

3. tab_count - retourne le nombre d'onglets ouverts dans Maxthon

Exemple :

	alert(external.tab_count);

4. cur_sel - retourne l'index de l'onglet en cours de Maxthon

Exemple :

	alert(external.cur_sel);

5. m2_plugin_folder( security_id , plugin_name ) - retourne le chemin du dossier du Plugin spécifié

Exemple :

	alert(external.m2_plugin_folder( %max_security_id , 'ViewSource!'));

6. m2_run_cmd( security_id , command_id ) - exécute l'ID de la commande spécifiée

Exemple :

               external. m2_run_cmd( %max_security_id , 32772 ));

Note: Maxthon 2.0 et Maxthon 1.X ont des ID de commande différents. Les ID des commandes se trouvent dans le fichier langue de Maxthon.

7. get_tab( security_id , tab_index ) - retourne l'objet Windows de l'onglet spécifié

Exemple :

	var oWin=external.get_tab(%max_security_id, 0);
	alert(oWin.document.URL);

8. activate_tab( security_id , tab_index ) - active l'onglet spécifié

Exemple :

	external.activate_tab(%max_security_id, 0);

9. close_tab( security_id , tab_index ) - ferme l'onglet spécifié

Exemple :

	external.close_tab(%max_security_id, 0);

10. readFile( security_id, plugin_name, file_name) - lit le contenu du fichier texte spécifié

Example :

	var sText=external.readFile(%max_security_id, 'ViewPage', 'readme.txt');
	alert(sText);

11. writeFile( security_id, plugin_name, file_name, content ) - écrit le contenu dans le fichier texte spécifié

Exemple :

	external.writeFile(%max_security_id, 'ViewPage', 'test.txt', 'Ceci est le contenu du fichier');

12. m2_readIni( security_id, plugin_name , file_name , section_name , key , default_value) - lit les données du fichier INI spécifié

Exemple :

	var sDownloadTool=external.m2_readIni(%max_security_id, 'ViewPage', 'plugin.ini', 'Settings', 'Tool', );
	alert(sDownloadTool);

13. m2_writeIni( security_id , plugin_name , file_name , section_name , key , value ) - écrit les données dans le fichier INI spécifié

Exemple :

	external.m2_writeIni(%max_security_id, 'ViewPage', 'test.ini', 'Config', 'height', '100px');

14. max_modelessDialog( security_id , url , option , attr , window ) - retourne une page de dialogue en mode Web

Exemple :

	var oDialog= external.max_modelessDialog( %max_security_id , 'blank.html', window , , window );
	var oDoc=oDialog.document;
	oDoc.write('Testing');
	oDoc.close();

15. max_activex(security_id ,program_id) - retourne l'objet ActiveX spécifié

Exemple :

	var oWSH=external.max_activex(%max_security_id, 'WScript.Shell');
	oWSH.run('notepad.exe');

16. m2_search_text(security_id) - retourne le texte de la barre de recherche

Exemple :

	alert(m2_search_text(%max_security_id));

17. max_callback(event_name) - une fonction qui est exécutée lorsque certains événements de Maxthon se produisent (pour les Plugins HTML de type Button et les Plugins Script de type Sidebar)

Les Plugins HTML de type Button et les Plugins Script de type Sidebar peuvent utiliser la fonction max_callback pour réagir à certains événements de Maxthon comme le changement d'onglet.

Exemple :

	function max_callback(x){
		if(x=='tab_change') alert('L'onglet en cours a changé.');
	}

En testant le paramètre de la fonction max_callback, le Plugin peut récupérer les événements suivants :

Plugins HTML de type Button

tab_change – après que l'onglet en cours ait changé

document_Complete - après que l'onglet en cours soit entièrement chargé

self_destroy - lorsque le HTML est déchargé, normalement lorsque Maxthon est fermé


Plugins Script de type Sidebar

sidebar_tab_change - après changement de l'onglet actif

sidebar_activate - lorsque le Plugin Sidebar est activé

sidebar_deactivate - lorsque le Plugin Sidebar est désactivé

sidebar_unload - lorsque le Plugin Sidebar est déchargé (Maxthon est fermé)


18. max_getObj (pour Maxthon 2.0 seulement) - retourne plusieurs objets de Maxthon :

Info - information générale sur Maxthon

Adhunter – à propos du tueur de pubs

FavManager – à propos des Favoris

RssManager – à propos des flux RSS

PluginManager - à propos des Plugins, pour Maxthon 2.0.5 ou supérieur


Exemple :

	var oInfo=external.max_getObj(%max_security_id, 'info');


L'objet Info supporte les propriétés et méthodes suivantes :

Propriétés :

fileProxy - en lecture seule, retourne le chemin du document de configuration du Proxy utilisateur en cours.

Exemple :

	var oInfo=external.max_getObj(%max_security_id, 'info');
	alert(oInfo.fileProxy);

folderUser - en lecture seule, retourne le chemin du dossier du profil de l'utilisateur en cours

Exemple :

	var oInfo=external.max_getObj(%max_security_id, 'info');
	alert(oInfo. folderUser);

Méthodes :

getFolderPluginData(plugin_name) - obtient le chemin du dossier de stockage des données d'un Plugin pour l'utilisateur en cours et le Plugin indiqué

Exemple :

	var oInfo=external.max_getObj(%max_security_id, 'info');
	alert(oInfo.getFolderPluginData('ViewSource!'));


L'object AdHunter supporte les méthodes suivantes :

Méthodes :

reloadFilter(filter_name) – recharge le filtre de Maxthon spécifié (actuellement seulement les filtres de contenu) après avoir modifié le filtre en question

Exemple :

	var oAdHunter=external.max_getObj(%max_security_id, 'AdHunter');
	oAdHunter.reloadFilter('content');

enableFilter(filter_name, bEnable) – active ou désactive le filtre de 'contenu' ou de 'Popup' de Maxthon

Exemple :

	var oAdHunter=external.max_getObj(%max_security_id, 'AdHunter');
	oAdHunter.enableFilter ('content', false);


L'objet PluginManager supporte les méthodes suivantes :

getPluginFolder - retourne le chemin du dossier principal du Plugin de Maxthon

Exemple :

	var oPluginManager=external.max_getObj(%max_security_id, 'PluginManager');
	alert(oPluginManager.getPluginFolder)

getCount - retourne le total de tous les Plugins installés, qu'ils soient activés ou non

Exemple :

	var oPluginManager=external.max_getObj(%max_security_id, 'PluginManager');
	alert(oPluginManager.getCount)

getList - retourne une liste qui contient des informations comme le nom, l'auteur, etc. de tous les Plugins

Exemple :

	var oPluginManager=external.max_getObj(%max_security_id, 'PluginManager');
	alert(oPluginManager.getList)

getPlugin(Index) - Index est un nombre, retourne les objets du Plugin correspondant

Exemple :

	var oPluginManager=external.max_getObj(%max_security_id, 'PluginManager');
	var oPlugin=oPluginManager.getPlugin(0);


L'objet Plugin retourné de getPlugin(Index) supporte les propriétés et méthodes suivantes :

Propriétés :

title - lecture seule, retourne le nom du Plugin

Exemple :

	alert(oPlugin.title);

folderName - lecture seule, retourne le nom du dossier du Plugin

Exemple :

	alert(oPlugin.folderName);

fullPath - lecture seule, retourne le chemin complet du dossier du Plugin

Exemple :

	alert(oPlugin.fullPath);

enable - lecture/écriture, retourne ou définit si le Plugin est actif

Exemple :

	oPlugin.enable=false;
	alert(oPlugin.enable);
	oPlugin.enable=true;
	alert(oPlugin.enable);

startAfterPageDone - lecture/écriture, retourne ou définit si le Plugin est en démarrage automatique

Exemple :

	oPlugin.startAfterPageDone = true;
	alert(oPlugin.startAfterPageDone);
	oPlugin.startAfterPageDone = false;
	alert(oPlugin.startAfterPageDone);

startAfterPageDoneUrl - lecture/écriture, retourne ou définit l'adresse pour laquelle le Plugin sera démarré automatiquement

Exemple :

	oPlugin.startAfterPageDoneUrl='*maxthon.com*|*maxthon.cn*';
	alert(oPlugin.startAfterPageDoneUrl);

Mêthodes :

config() - ouvre la boîte de dialogue de configuration du Plugin (config.html)

Exemple :

	oPlugin.config();

remove() - supprime le Plugin

Exemple :

	oPlugin.remove();

Mscript

Maxthon 2.0 supporte des mscripts personnalisés en plus des scripts pour les Plugins de type Button. Contrairement aux scripts normaux, les mscripts ne sont pas exécutés sur des pages Web ,ainsi les mscripts ne sont pas sujets aux restrictions de sécurité imposées aux scripts normaux,et on ne doit donc pas craindre qu'ils soient exploités par des pages Web. Les mscripts peuvent grandement améliorer les fonctionnalités des Plugins car ils peuvent fonctionner malgré la désactivation des scripts classiques et aussi accéder aux contenus des différentes frames d'une page web même si elles ne sont pas dans le même domaine. Pour utiliser mscript dans un Plugin de type Button, remplacez la balise <script...> par <mscript...>


Exemple - le Plugin de type Button peut désactiver les scripts dans la page en cours en modifiant le contrôle de contenu de Maxthon :

<script language="javascript">
external.m2_run_cmd(%max_security_id, 33175);
</script>

Mais après que les scripts aient été désactivés, le Plugin ne peut plus fonctionner. Ainsi, il ne pourra plus réactiver les scripts dans la page en cours. Au contraire, le Plugin mscript suivant peut fonctionner avec les scripts désactivés, ainsi il pourra réactiver les scripts dans la page en cours.

<mscript language="javascript">
external.m2_run_cmd(0, 33175);
</script>

Notez qu'un nombre arbitraire peut être utilisé comme %max_security_id lorsque le mscript est utilisé.


Créer un Plugin multilingue

Lien original :[1]

Il existe plusieurs façons de faire un Plugin multilingue. Personnellement j'ai utilisé la méthode suivante que je trouve assez pratique pour les auteurs et les traducteurs de Plugins :

Pour les auteurs de Plugins

  1. Dans le dossier des Plugins, créer un sous-dossier "Language" qui contiendra les fichiers de langue
  2. Créer le fichier de langue anglaise par défaut (créer un fichier texte et le nommer "0x0409.ini", "0x0409" est l'ID de la langue anglaise)
  3. Ouvrir le fichier avec un éditeur de texte et ajouter les chaînes de caractères nécessaires, eg.


[General]
01=Hello!
02=This is testing.
...

Ici les chaînes de caractères "01", "02", "..." etc. sont ajoutées sous la section "General".


Pour les Plugins de barre de boutons, ajouter la fonction suivante (remplacer "Test" par le nom de votre Plugin) dans le script du Plugin :


function getStr(x){
   var sString=external.m2_readIni(%max_security_id, 'Test', 'Language/'+external.max_language_id+'.ini', 'General', x, '');
   if(!sString) sString=external.m2_readIni(%max_security_id, 'Test', 'Language/0x0409.ini', 'General', x, '');
   return(sString);
}


Pour les Plugin de Barre latérale, ajouter les scripts suivants dans l'entête de la section du fichier HTML :


<script src=max.src></script>
<script>
function getStr(x){
   var sString=external.m2_readIni(max_security_id, 'Test', 'Language/'+external.max_language_id+'.ini', 'General', x, '');
   if(!sString) sString=external.m2_readIni(max_security_id, 'Test', 'Language/0x0409.ini', 'General', x, '');
   return(sString);
}
</script>

Maintenant la fonction "getStr" peut être utilisée pour récupérer les chaînes de caractères à partir des fichiers de langue. Par exemple "getStr('01')" essayera de récupérer chaîne de caractères "01" à partir du fichier langue qui correspond à la langue sélectionnée dans Maxthon. Si le fichier langue n'est pas trouvé, il récupèrera la chaîne de caractères "01" à partir du fichier de langue anglaise par défaut.


Pour les traducteurs

  1. Récupérer l'identifiant de langue approprié pour votre traduction ici
  2. Dupliquer le fichier de langue anglaise et renommer le avec l'ID de langue adéquat, ex. 0x040c.ini pour français
  3. Ouvrir le fichier avec un éditeur de texte et traduire les chaînes de caractères "01=", "02=", "..." etc.
  4. Enregistrer le fichier au format Unicode pour ne pas avoir de problème d'encodage
  5. Envoyer le fichier sur le forum ou à l'auteur du Plugin

Mettre le fichier de langue dans le dossier "Language" du Plugin. Il fonctionnera immédiatement si l'utilisateur sélectionne la langue adéquate.


Traduire Plugin.ini

En plus de la traduction des chaînes de caractères utilisées par les scripts du Plugin, il est recommandé aux traducteurs de traduire le fichier plugin.ini également. Dans ce cas, les commentaires et le menu déroulant du Plugin, s'ils sont présents, seront affichés dans la langue adéquate. Pour traduire le plugin.ini :

  1. Récupérer l'identifiant de langue approprié pour votre traduction ici
  2. Dupliquer le fichier plugin.ini et renommez-le par ex. plugin0x040c.ini pour le français
  3. Ouvrir le fichier avec un éditeur de texte et traduire les chaînes de caractères pour "Comments", et s'il y en a dans la section "[MyIE2Buttons]", traduire également "Name1", "Name2", ...
  4. Enregistrer le fichier au format Unicode pour ne pas avoir de problème d'encodage
  5. Envoyer le fichier sur le forum ou à l'auteur du Plugin

Mettre le fichier plugin.ini dans le dossier du Plugin. Il fonctionnera après le redémarrage de Maxthon et la réinitialisation de la barre de Plugins si l'utilisateur sélectionne la langue adéquate.


Exemple

Le Plugin "Test" contient 2 langues, English (par défaut - 0x0409) et Chinois Simplifié (简体中文 - 0x0804). Essayez de changer la langue de Maxthon et cliquez sur le bouton du Plugin (redémarrer Maxthon et réinitialiser la barre de Plugins est nécessaire pour charger le plugin.ini pour une nouvelle langue). Essayez également d'ajouter un nouveau fichier de langue et un plugin.ini pour votre langue.


Texte original : Plugin Reference - Maxthon 2.x traduit par Ldfa et corrigé par Ray1, POLAURENT, Ricouz et Vee.


Base de connaissances de Maxthon 2.0