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

De Wiki Francophone de Maxthon
Aller à la navigation Aller à la recherche
 
(72 versions intermédiaires par 8 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
Version: 2.0.1<br /> Last Modified: 2006-07-17 4:24 PM
== '''Types de Plugin de Maxthon''' ==




==Overview==
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 :
Maxthon Browser has extended the DHTML support of IE by adding several new extensions which can be called by scripting language such as Javascript and VBScript.


These APIs can be called via the <span class="keyword">window</span>.<span class="keyword">external</span> object in a HTML page or a script plugin made for Maxthon Browser.


Some functions will require a <span class="flag">security_id</span> as first parameter. These Functions can only be used by Plugins.<br /> In order to get a <span class="flag">security_id</span> for your plugin, you can do the following:
              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


====Button Plugins====
Put a <span class="flag">%max_security_id</span> in your script, such as:


<span class="keyword">var</span> security_id=<span class="flag">%max_security_id</span><nowiki>;</nowiki>
==== '''1. ModuleType - Script, HTML, EXE, COM et COM_Global''' ====


Then you can use the variable <span class="flag">security_id</span> in your script.


====Sidebar Plugins====
'''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.
A file named <span class="flag">max.src</span> will be created in your plugin's folder, include this file in your HTML file:
'''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.


<<span class="keyword">script</span> <span class="flag">type</span><nowiki>=</nowiki><span class="string">"text/javascript"</span> <span class="flag">src</span><nowiki>=</nowiki><span class="string">"max.src"</span>></<span class="keyword">script</span>>
'''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 .


Then use variable <span class="flag">max_security_id</span> for security id parameter in your script.
'''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.


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


====Extended Properties====
* [#max_version max_version] : Get current version of Maxthon Browser
* [#max_language_id max_language_id] : Get current language id of Maxthon UI
* [#current_tab current_tab (cur_sel)] : Get current tab's index
* [#tab_count tab_count] : Get current opened tabs' count


====General Methods====
'''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).
* [#addFavorite addFavorite()] : Call the Add Favorites dialog
* [#addProxy addProxy()] : Call the Add Proxy dialog
* [#addFilter addFilter()] : Call the Add Filter dialog
* [#max_addProxyProvider max_addProxyProvider()] : Call the Add Proxy Provider dialog
* [#m2_run_cmd m2_run_cmd()] : Execute Maxthon functions by Command ID
* [#m2_search_text m2_search_text()] : Get search string in Maxthon's Search Box
* [#m2_plugin_folder m2_plugin_folder()] : Get local folder path of a plugin


====Tab Related Methods====
'''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).
* [#get_tab get_tab()] : Get a tab's window object by index
* [#activate_tab activate_tab()] : Activate a tab by index
* [#close_tab close_tab()] : Close a tab by index


====File Related Methods====
'''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.
* [#readFile readFile()] : Read a file's content
* [#writeFile writeFile()] : Write data to a file
* [#m2_readIni m2_readIni()] : Read an INI file
* [#m2_writeIni m2_writeIni()] : Write to an INI file


'''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.


==Extended Properties==
'''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.


===max_version===
'''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.
<div class="indent">


====Remarks:====
== Créer un Plugin pour Maxthon ==
This property will return a string of Maxthon Browser Version Number.<br /> The return string is formatted like <span class="string">"2.1.0.600"</span>.


It's sugguested use this property to determine whether Maxthon Browser is running.


====Requirements:====
'''Composants majeurs d’un Plugin de Maxthon'''
Maxthon Version 2.0+<br /><br />


====Example:====
Un Plugin de Maxthon contient généralement les fichiers suivants :
[javascript:v() [Demo 1]]


<div class="codeblock"><span class="keyword">alert</span>(<span class="string">'Maxthon Version: '</span>+<span class="keyword">external</span>.<span class="keyword">max_version</span>);</div></div>
'''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.


===max_language_id===
<div class="indent">


====Remarks:====
This property will return current language id of Maxthon Browser.


The Language ID has change to use Language Identifiers defined in Microsoft Windows since Maxthon Browser 2.0. <br /> A list of Maxthon's Language IDs can be found at:<br />http://msdn.microsoft.com/library/?url=/library/en-us/intl/nls_238z.asp
'''Fichier plugin.ini'''


====Requirements:====
Maxthon Version 1.0+<br /><br />


====Example:====
[General] nécessaire à la définition de plusieurs attributs du plugin
[javascript:v() [Demo 1]]
'''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.


<span class="keyword">alert</span>(<span class="string">'Language ID='</span>+<span class="keyword">external</span>.<span class="keyword">max_language_id</span>);
'''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.


</div>
'''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.


====current_tab '''(formerly''' cur_sel ''')''' <span class="note">Not Implemented</span>====
[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.


<div class="indent">


=====Remarks:=====
'''Installation d'un Plugin de Maxthon'''


This property will return an integer number as the index of the tab which is activated.<br /><span class="flag">null</span> will be returned if there is no tab opened.<br /><span class="keyword">current_tab</span><span class="warn"> is introduced in Maxthon 2.0 as a replacement of </span><span class="keyword">cur_sel</span><span class="warn"> because the old property name is too obscure to understand.</span><br /><br />
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.


=====Requirements:=====
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 Version 2.0+ (use <span class="keyword">cur_sel</span> for 1.x versions)<br /><br />


=====Example:=====
'''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.


[javascript:v() [Demo 1]]
'''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


<div class="codeblock"><span class="keyword">alert</span>(<span class="string">'Current Tab Index: '</span>+<span class="keyword">external</span>.<span class="keyword">current_tab</span>);</div></div>
== Commandes des Plugins Script de Maxthon ==


====tab_count====


<div class="indent">
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.


=====Remarks:=====


This property will return current tab count as an integer.<br /><br />
'''Comment obtenir l'ID de sécurité'''


=====Requirements:=====
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>


Maxthon Version 1.0+<br /><br />


=====Example:=====
'''Référence des commandes des Plugins de Maxthon'''


[javascript:v() [Demo 1]]
Sauf indication contraire, les commandes suivantes sont applicables pour Maxthon 2.0 et Maxthon 1.X :


<span class="keyword">alert</span>(<span class="string">'Tabs Count: '</span>+<span class="keyword">external</span>.<span class="keyword">tab_count</span>);
1. '''max_version''' - retourne le numéro de version de Maxthon
Exemple :
alert(external.max_version);


</div>
2. '''max_language_id''' - retourne l'ID de langue de Maxthon
Exemple :
alert(external.max_language_id);


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


===General Methods===
3. '''tab_count''' - retourne le nombre d'onglets ouverts dans Maxthon
Exemple :
alert(external.tab_count);


====addFavorite(''url'' '''[''', ''title''''']''')====
4. '''cur_sel''' - retourne l'index de l'onglet en cours de Maxthon
Exemple :
alert(external.cur_sel);


<div class="indent">
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!'));


=====Parameters:=====
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.


''url'' : string<br /> The url to add.<br /><br />''title'' : string<br /> Optional. The title of the url.<br /><br />
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);


=====Remarks:=====
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');


  Show the Add Favorite dialog to ask user to add a new Favorites Item.<br /> This function will return <span class="bool">false</span> if user cancelled this operation.<br /><br />
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);


=====Requirements:=====
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');


  Maxthon Version 1.0+<br /><br />
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();


=====Example:=====
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');


[javascript:v() [Demo 1]]
16. '''m2_search_text(security_id)''' - retourne le texte de la barre de recherche
Exemple :
alert(m2_search_text(%max_security_id));


<span class="keyword">external</span>.<span class="keyword">addFavorite</span>(<span class="string">"http://www.maxthon.com"</span>);
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é.');
}


[javascript:v() [Demo 2]]
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'''


<span class="keyword">external</span>.<span class="keyword">addFavorite</span>(<span class="string">"http://www.maxthon.com"</span>, <span class="string">"Maxthon Official Site"</span>);
'''tab_change''' – après que l'onglet en cours ait changé


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


====addProxy(''name'', ''address'', ''type'')====
'''self_destroy''' - lorsque le HTML est déchargé, normalement lorsque Maxthon est fermé


<div class="indent">


=====Parameters:=====
'''Plugins Script de type Sidebar'''


''name'' : string<br /> The display name of proxy.<br /><br />''address'' : string<br /> The IP address or Domain name of proxy.<br /><br />''type'' : integer<br /> A number indicates the speed rating of proxy.<br /> = HTTP Proxy, <span class="number">1</span> = SOCKS4A Proxy, <span class="number">2</span> = SOCKS5 Proxy<br /><br />
'''sidebar_tab_change''' - après changement de l'onglet actif


=====Remarks:=====
'''sidebar_activate''' - lorsque le Plugin Sidebar est activé


Add a new proxy into Maxthon's proxy list. A dialog will be shown to the user.<br /> This function will return <span class="bool">false</span> if user cancelled this operation.<br /><br />
'''sidebar_deactivate''' - lorsque le Plugin Sidebar est désactivé


=====Requirements:=====
'''sidebar_unload''' - lorsque le Plugin Sidebar est déchargé (Maxthon est fermé)


Maxthon Version 2.0+<br /><br />


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


[javascript:v() [Demo 1]]
'''Info'''  - information générale sur Maxthon


<span class="keyword">external</span>.<span class="keyword">addProxy</span>(<span class="string">"My proxy"</span>,<span class="string">"192.168.1.0:8080"</span>, <span class="number">1</span>);
'''Adhunter''' – à propos du tueur de pubs


</div>
'''FavManager''' – à propos des Favoris


====addFilter(''url_mask'', ''type'')====
'''RssManager''' – à propos des flux RSS


<div class="indent">
'''PluginManager''' - à propos des Plugins, pour Maxthon 2.0.5 ou supérieur


=====Parameters:=====


''url_mask'' : string<br /> Address mask to match blocked addresses. Supports Regular Expression.<br /><br />''type'' : integer<br /> A number indicates which Filter list to add.<br /> = Popup Filter, <span class="number">1</span> = Content Filter<br /><br />
Exemple :
var oInfo=external.max_getObj(%max_security_id, 'info');


=====Remarks:=====


Add a new filter policy into Maxthon. A dialog will be shown to the user.<br /> This function will return '''false''' if user cancelled this operation.<br /><br />
'''L'objet Info supporte les propriétés et méthodes suivantes :'''
Propriétés :


=====Requirements:=====
'''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);


Maxthon Version 2.0+<br /><br />
'''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);


=====Example:=====
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!'));


[javascript:v() [Demo 1]]


<span class="keyword">external</span>.<span class="keyword">addFilter</span>(<span class="string">"http://www.advertisement.com/img/*"</span>, );
'''L'object AdHunter supporte les méthodes suivantes :'''
Méthodes :


</div>
'''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');


====max_addProxyProvider(''URL'')====
'''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);


<div class="indent">


=====Parameters:=====
'''L'objet PluginManager supporte les méthodes suivantes :'''


''URL'' : string<br /> The URL of proxy list file. File format please refer to [proxyprovider.htm this document].<br /><br />
'''getPluginFolder''' - retourne le chemin du dossier principal du Plugin de Maxthon


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


Add a new Proxy Provider into Maxthon Broser. A dialog will be shown to the user.<br /> This function will return <span class="bool">false</span> if user cancelled this operation.<br /><br />
'''getCount''' - retourne le total de tous les Plugins installés, qu'ils soient activés ou non


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


Maxthon Version 2.0+<br /><br />
'''getList''' - retourne une liste qui contient des informations comme le nom, l'auteur, etc. de tous les Plugins


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


[javascript:v() [Demo 1]]
'''getPlugin(Index)''' - Index est un nombre, retourne les objets du Plugin correspondant


<span class="keyword">external</span>.<span class="keyword">max_addProxyProvider</span>(<span class="string">"http://www.freeproxy.cn/m2proxy/proxylist.xml"</span>);
Exemple :
var oPluginManager=external.max_getObj(%max_security_id, 'PluginManager');
var oPlugin=oPluginManager.getPlugin(0);


</div>


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


<div class="indent">
Propriétés :


=====Parameters:=====
'''title''' - lecture seule, retourne le nom du Plugin


''security_id'' : string<br /> Maxthon's Security ID.<br /><br />''command_id'' : integer<br /> The internal command ID of Maxthon.<br /><br />
Exemple :
alert(oPlugin.title);


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


This function will call a Maxthon's command with specified ''command_id''.<br /> Most usable Command IDs can be found in the language file inside Maxthon's language folder.<br /><span class="warn">Command ID might be different between versions. Please do not use this function if not required.</span><br /><br />
Exemple :
alert(oPlugin.folderName);


=====Requirements:=====
'''fullPath''' - lecture seule, retourne le chemin complet du dossier du Plugin


Maxthon Version 1.0+<br /><br />
Exemple :
alert(oPlugin.fullPath);


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


<span class="keyword">external</span>.<span class="keyword">m2_run_cmd</span>(<span class="string">security_id</span>, <span class="number">32772</span>); // Open a Blank Page
Exemple :
oPlugin.enable=false;
alert(oPlugin.enable);
oPlugin.enable=true;
alert(oPlugin.enable);


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


====m2_search_text(''security_id'')====
Exemple :
oPlugin.startAfterPageDone = true;
alert(oPlugin.startAfterPageDone);
oPlugin.startAfterPageDone = false;
alert(oPlugin.startAfterPageDone);


<div class="indent">
'''startAfterPageDoneUrl''' - lecture/écriture, retourne ou définit l'adresse pour laquelle le Plugin sera démarré automatiquement


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


''security_id'' : string<br /> Maxthon's Security ID.<br /><br />
Mêthodes :


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


This function will return the text in Maxthon's Search Box as a string.<br /><br />
Exemple :
oPlugin.config();


=====Requirements:=====
'''remove()''' - supprime le Plugin


Maxthon Version 1.2+<br /><br />
Exemple :
oPlugin.remove();


=====Example:=====
== Mscript ==


<span class="keyword">var</span> searchText=<span class="keyword">external</span>.<span class="keyword">m2_search_text</span>(<span class="string">security_id</span>);
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...>


</div>


====m2_plugin_folder(''security_id'', ''plugin_name'')====
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 :


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


=====Parameters:=====
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'' : string<br /> Maxthon's Security ID.<br /><br />''plugin_name'' : string<br /> The name of the plugin as defined in plugin.ini.<br /><br />
<mscript language="javascript">
external.m2_run_cmd(0, 33175);
</script>


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


This function will return the local folder path of specified plugin as a string.<br /><br />


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


Maxthon Version 1.2+<br /><br />
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 :


=====Example:=====
Pour les auteurs de Plugins


<span class="keyword">var</span> pluginPath=<span class="keyword">external</span>.<span class="keyword">m2_plugin_folder</span>(<span class="string">security_id</span>, <span class="string">"ViewSource!"</span>);
# Dans le dossier des Plugins, créer un sous-dossier "Language" qui contiendra les fichiers de langue
# 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.


</div>


====m2_callerName(''security_id'', ''plugin_name'')====
[General]
01=Hello!
02=This is testing.
...


<div class="indent">
Ici les chaînes de caractères "01", "02", "..." etc. sont ajoutées sous la section "General".


=====Parameters:=====


''security_id'' : string<br /> Maxthon's Security ID.<br /><br />''plugin_name'' : string<br /> The name of the plugin as defined in plugin.ini.<br /><br />
Pour les Plugins de barre de boutons, ajouter la fonction suivante (remplacer "Test" par le nom de votre Plugin) dans le script du Plugin :


=====Remarks:=====


  This function will tell Maxthon the next function call is from a plugin.<br /> This function is usually used before the <span class="keyword">window</span>.<span class="keyword">open</span>() method to bypass the Popup Blocker of Maxthon for the plugin.<br /><br />
  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);
}


=====Requirements:=====


Maxthon Version 1.2+<br /><br />
Pour les Plugin de Barre latérale, ajouter les scripts suivants dans l'entête de la section du fichier HTML :


=====Example:=====


<span class="keyword">external</span>.<span class="keyword">m2_callerName</span>(<span class="string">security_id</span>, <span class="string">"ViewSource!"</span>);<br /><span class="keyword">window</span>.<span class="keyword">open</span>(<span class="string">"about:blank"</span>);
<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>


</div>
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.


====max_actSideBarItem(''plugin_name'')====


<div class="indent">
Pour les traducteurs


=====Parameters:=====
# 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


''plugin_name'' : string<br /> The name of the plugin as defined in plugin.ini.
Mettre le fichier de langue dans le dossier "Language" du Plugin. Il fonctionnera immédiatement si l'utilisateur sélectionne la langue adéquate.


=====Remarks:=====


This function will activate the sidebar plugins with the given name. <br /><br />
Traduire Plugin.ini


=====Requirements:=====
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.2+<br /><br />
# Récupérer l'identifiant de langue approprié pour votre traduction ici
# Dupliquer le fichier plugin.ini et renommez-le par ex. plugin0x040c.ini pour le français
# 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


=====Example:=====
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.


[javascript:v() [Demo 1]]


<span class="keyword">external</span>.<span class="keyword">max_actSideBarItem</span>(<span class="string">"Calculator++"</span>);
Exemple


</div>
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.


<br /><br />


====max_modelessDialog(''security_id'', ''url'', ''arguments'', ''features'', ''parent_window'')====
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.


<div class="indent">


=====Parameters:=====
<center>[[Base de connaissances de Maxthon 2.0]]</center>
 
''security_id'' : string<br /> Maxthon's Security ID.<br /><br />''url'' : string<br /> The url of modeless dialog content.<br /><br />''arguments'' : variant<br /> The arguments pass to the modeless dialog's '''window.dialogArguments''' object.<br /><br />''features'' : string<br /> A String that specifies the window ornaments for the dialog box.<br /><br />''parent_window'' : object<br /> The parent '''window''' object of the dialog.
 
=====Remarks:=====
 
This function is almost the same as '''window.showModelessDialog()''' but with two more parameters.<br /> With the ''security_id'' your plugin can bypass Maxthon's Popup Blocker.<br /> With the ''parent_window'' you can make the dialog being a child of another tab's '''window'''.<br /><br />
 
=====Requirements:=====
 
Maxthon Version 1.2+<br /><br />
 
=====Example:=====
 
<span class="keyword">external</span>.<span class="keyword">max_modelessDialog</span>(<span class="string">security_id</span>, <span class="string">"about:blank"</span>, {"userid": 7, "key": "d3fe3asd"}, <span class="string">"status:no; help:no; resizable:yes; scroll:yes;"</span>, window);
 
</div>
 
<br /><br />
 
====get_tab(''security_id'', ''index'')====
 
<div class="indent">
 
=====Parameters:=====
 
''security_id'' : string<br /> Maxthon's Security ID.<br /><br />''index'' : integer<br /> The index of the tab to get.<br /><br />
 
=====Remarks:=====
 
This function will get the '''window''' object of specified tab in Maxthon.<br /><span class="flag">null</span> will be returned if the tab does not exist.<br /><br />
 
=====Requirements:=====
 
Maxthon Version 1.0+<br /><br />
 
=====Example:=====
 
<span class="keyword">var</span> objTab=<span class="keyword">external</span>.<span class="keyword">get_tab</span>(<span class="string">security_id</span>, <span class="number">5</span>);
 
</div>
 
<br /><br />
 
====activate_tab(''security_id'', ''index'')====
 
<div class="indent">
 
=====Parameters:=====
 
''security_id'' : string<br /> Maxthon's Security ID.<br /><br />''index'' : integer<br /> The index of the tab to be activated.<br /><br />
 
=====Remarks:=====
 
This function will activate the specified tab in Maxthon.<br /> Nothing will happen if the tab does not exist.<br /><br />
 
=====Requirements:=====
 
Maxthon Version 1.0+<br /><br />
 
=====Example:=====
 
<span class="keyword">external</span>.<span class="keyword">activate_tab</span>(<span class="string">security_id</span>, <span class="number">1</span>);
 
</div>
 
<br /><br />
 
====close_tab(''security_id'', ''index'')====
 
<div class="indent">
 
=====Parameters:=====
 
''security_id'' : string<br /> Maxthon's Security ID.<br /><br />''index'' : integer<br /> Integer. The index of the tab to close.<br /><br />
 
=====Remarks:=====
 
This function will close the tab which ''index'' represents.<br /> Nothing will happen if the tab does not exist.<br /><br />
 
=====Requirements:=====
 
Maxthon Version 1.0+<br /><br />
 
=====Example:=====
 
<span class="keyword">external</span>.<span class="keyword">close_tab</span>(<span class="string">security_id</span>, );
 
</div>
 
<br /><br />
 
====readFile(''security_id'', ''plugin_name'', ''file_name'')====
 
<div class="indent">
 
=====Parameters:=====
 
''security_id'' : string<br /> Maxthon's Security ID.<br /><br />''plugin_name'' : string<br /> The name of calling plugin as defined in plugin.ini<br /><br />''file_name'' : string<br /> The file to read.<br /><br />
 
=====Remarks:=====
 
This function can only be used in a plugin.<br /> The function will return the file content in string when success.<br /> If the plugin is not enabled or the ''plugin_name'' is not found, the function will fail and return '''null'''.<br /><br />
 
=====Requirements:=====
 
Maxthon Version 1.0+<br /><br />
 
=====Example:=====
 
<span class="keyword">var</span> strFile=<span class="keyword">external</span>.<span class="keyword">readFile</span>(<span class="string">security_id</span>, <span class="string">"Test plugin"</span>, <span class="string">"plugin.ini"</span>);<br />
 
</div>
 
<br /><br />
 
====writeFile(''security_id'', ''plugin_name'', ''file_name'', ''content'')====
 
<div class="indent">
 
=====Parameters:=====
 
''security_id'' : string<br /> Maxthon's Security ID.<br /><br />''plugin_name'' : string<br /> The name of calling plugin as defined in plugin.ini<br /><br />''file_name'' : string<br /> The file to write.<br /><br />''content'' : string<br /> File content string to write.<br /><br />
 
=====Remarks:=====
 
This function can only be used in a plugin.<br /> This function will return <span class="bool">true</span> when success.<br /> If the file is not found, the plugin is not enabled or the ''plugin_name'' is not found, the function will fail and return <span class="bool">false</span>.<br /><span class="warn">If a file with the same name exists, it will be overwritten.</span><br /><br />
 
=====Requirements:=====
 
Maxthon Version 1.0+<br /><br />
 
=====Example:=====
 
<span class="keyword">external</span>.<span class="keyword">writeFile</span>(<span class="string">security_id</span>, <span class="string">"Test plugin"</span>, <span class="string">"setting.ini"</span>, <span class="string">"username=abc\npass=qwrxcv"</span>);
 
</div>
 
<br /><br />
 
====m2_readIni(''security_id'', ''plugin_name'', ''file_name'', ''section_name'', ''key'', ''default_value'')====
 
<div class="indent">
 
=====Parameters:=====
 
''security_id'' : string<br /> Maxthon's Security ID.<br /><br />''plugin_name'' : string<br /> The name of calling plugin as defined in plugin.ini.<br /><br />''file_name'' : string<br /> The name of the INI file to read.<br /><br />''section_name'' : string<br /> The INI section to read, without brackets [ ].<br /><br />''key'' : string<br /> The key of the entry to read.<br /><br />''default_value'' : string<br /> The default value to return if the key does not exist.<br /><br />
 
=====Remarks:=====
 
This function will read the value of ''key'' under section ''section_name'' in INI file ''file_name''.<br /> The INI file must be placed inside the folder of plugin ''plugin_name''.<br /> The value will be returned as a '''string''' if success.<br /> If the file does not exist, the section does not exist or the key does not exist, the ''default_value'' will be returned.<br /><br />
 
=====Requirements:=====
 
Maxthon Version 1.0+<br /><br />
 
=====Example:=====
 
<span class="keyword">var</span> saveCount = <span class="keyword">external</span>.<span class="keyword">m2_readIni</span>(<span class="string">security_id</span>, <span class="string">"TestPlugin"</span>, <span class="string">"settings.ini"</span>, <span class="string">"general"</span>, <span class="string">"saveCount"</span>, <span class="string">"0"</span>);
 
</div>
 
<br /><br />
 
====m2_writeIni(''security_id'', ''plugin_name'', ''file_name'', ''section_name'', ''key'', ''value'')====
 
<div class="indent">
 
=====Parameters:=====
 
''security_id'' : string<br /> Maxthon's Security ID.<br /><br />''plugin_name'' : string<br /> The name of calling plugin as defined in plugin.ini.<br /><br />''file_name'' : string<br /> The name of the INI file to write.<br /><br />''section_name'' : string<br /> The INI section to write, without brackets [ ].<br /><br />''key'' : string<br /> The key of the entry to write.<br /><br />''value'' : string/integer<br /> The value to write.<br /><br />
 
=====Remarks:=====
 
This function will write a ''key'' and ''value'' pair entry under section ''section_name'' in INI file ''file_name''.<br /> The INI file can only be writen inside the folder of plugin ''plugin_name''.<br /> If the file does not exist, the section does not exist or the key does not exist, they will be created automatically.<br /> This function will return <span class="bool">true</span> when success and <span class="bool">false</span> when failed.<br /><br />
 
=====Requirements:=====
 
Maxthon Version 1.0+<br /><br />
 
=====Example:=====
 
<span class="keyword">external</span>.<span class="keyword">m2_writeIni</span>(<span class="string">security_id</span>, <span class="string">"TestPlugin"</span>, <span class="string">"settings.ini"</span>, <span class="string">"general</span>", <span class="string">"saveCount"</span>, <span class="number">25</span>);
 
</div>
 
<br /><br />

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