« Les scripts de Maxthon v2.0 » : différence entre les versions
Aucun résumé des modifications |
Aucun résumé des modifications |
||
Ligne 122 : | Ligne 122 : | ||
'''Maxthon 1.X''' | '''Maxthon 1.X''' | ||
Les Plugins sont installés dans Maxthon 1.x en suivant cette procédure : | |||
1. Fermer Maxthon | 1. Fermer Maxthon | ||
Ligne 131 : | Ligne 131 : | ||
4. Confirmer l'installation du nouveau plugin | 4. Confirmer l'installation du nouveau plugin | ||
== Maxthon Script Plugin Commands == | |||
Maxthon provides various plugin commands to improve the capability of Script plugins. These plugin commands can be run through the window.external object. Some plugin commands requires a Security ID generated by Maxthon to be run. | |||
'''How to obtain the Security ID''' | |||
1. Script button plugins can use "%max_security_id" for the Security ID | |||
2. Script sidebar plugins and HTML button plugins have to load "max.src", a script generated by Maxthon. Then "max_security_id" can be used。 | |||
<script src=max.src></script> | |||
'''Reference for Maxthon Plugin Commands''' | |||
Unless specified otherwise, the following plugin commands are applicable for both Maxthon 2.0 and Maxthon 1.X。 | |||
1. '''max_version''' - return Maxthon's version number | |||
Example: | |||
alert(external.max_version); | |||
2. '''max_language_id''' - return Maxthon's language ID | |||
Example: | |||
alert(external.max_language_id); | |||
Note: Maxthon 2.0 and Maxthon 1.X have different language ID format | |||
3. '''tab_count''' - return the number of tabs opened by Maxthon | |||
Example: | |||
alert(external.tab_count); | |||
4. '''cur_sel''' - return the index of Maxthon's current tab | |||
Example: | |||
alert(external.cur_sel); | |||
5. '''m2_plugin_folder( security_id , plugin_name )''' - return the folder path of the specified plugin | |||
Example: | |||
alert(external.m2_plugin_folder( %max_security_id , 'ViewSource!')); | |||
6. '''m2_run_cmd( security_id , command_id )''' - run the specified command ID | |||
Example: | |||
external. m2_run_cmd( %max_security_id , 32772 )); | |||
Note: Maxthon 2.0 and Maxthon 1.X have different command ID. Command ID can be found in Maxthon's language file. | |||
7. '''get_tab( security_id , tab_index )''' - return the window object of the specifed tab | |||
Example: | |||
var oWin=external.get_tab(%max_security_id, 0); | |||
alert(oWin.document.URL); | |||
8. '''activate_tab( security_id , tab_index )''' - activate the specified tab | |||
Example: | |||
external.activate_tab(%max_security_id, 0); | |||
9. '''close_tab( security_id , tab_index )''' - close the specified tab | |||
Example: | |||
external.close_tab(%max_security_id, 0); | |||
10. '''readFile( security_id, plugin_name, file_name)''' - read the content of specified text file | |||
Example: | |||
var sText=external.readFile(%max_security_id, 'ViewPage', 'readme.txt'); | |||
alert(sText); | |||
11. '''writeFile( security_id, plugin_name, file_name, content )''' - write content to the specific text file | |||
Example: | |||
external.writeFile(%max_security_id, 'ViewPage', 'test.txt', 'This is the file content'); | |||
12. '''m2_readIni( security_id, plugin_name , file_name , section_name , key , default_value)''' - read data from specific INI file | |||
Example: | |||
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 )''' - write data to specific INI file | |||
Example: | |||
external.m2_writeIni(%max_security_id, 'ViewPage', 'test.ini', 'Config', 'height', '100px'); | |||
14. '''max_modelessDialog( security_id , url , option , attr , window )''' - returns a modeless web page dialog | |||
Example: | |||
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)''' - return specified ActiveX object | |||
Example: | |||
var oWSH=external.max_activex(%max_security_id, 'WScript.Shell'); | |||
oWSH.run('notepad.exe'); | |||
16. '''m2_search_text(security_id)''' - return the text in search bar | |||
Example: | |||
alert(m2_search_text(%max_security_id)); | |||
17. '''max_callback(event_name)''' - a function which is run when certain Maxthon events happen (for HTML button plugins and Script sidebar plugins) | |||
HTML button plugins and Script sidebar plugins can implement the max_callback function for reacting to certain Maxthon browser events like switching to a different tab. | |||
Example: | |||
function max_callback(x){ | |||
if(x=='tab_change') alert('Current tab is changed.'); | |||
} | |||
By checking the parameter of the max_callback function, plugin can get the following browser events: | |||
'''HTML button plugins''' | |||
'''tab_change''' – after the current tab is switched | |||
'''document_Complete''' - after the current tab is fully loaded | |||
'''self_destroy''' - when the html is unloaded, usually when Maxthon exits | |||
'''Script sidebar plugins''' | |||
'''sidebar_tab_change''' - after the current tab is switched | |||
'''sidebar_activate''' - when the sidebar plugin is activated | |||
'''sidebar_deactivate''' - when the sidebar plugin is deactivated | |||
'''sidebar_unload''' - when the sidebar plugin is unloaded (Maxthon is closed) | |||
18. '''max_getObj''' (for Maxthon 2.0 only) - return various Maxthon objects, including: | |||
'''Info''' - general information about Maxthon | |||
'''Adhunter''' – about Ad Hunter | |||
'''FavManager''' – about Favorites | |||
'''RssManager''' – about RSS | |||
'''PluginManager''' - about Plugins, for Maxthon 2.0.5 or later | |||
Example: | |||
var oInfo=external.max_getObj(%max_security_id, 'info'); | |||
'''Info Object supports the following property and method:''' | |||
Property: | |||
'''fileProxy''' - read-only, returns the path of the current user's proxy configuration document. | |||
Example: | |||
var oInfo=external.max_getObj(%max_security_id, 'info'); | |||
alert(oInfo.fileProxy); | |||
'''folderUser''' - read-only, returns the path of the profile folder of the current user | |||
Example: | |||
var oInfo=external.max_getObj(%max_security_id, 'info'); | |||
alert(oInfo. folderUser); | |||
Method: | |||
'''getFolderPluginData(plugin_name)''' - obtain the path of plugin data storage folder for the current user and the plugin | |||
Example: | |||
var oInfo=external.max_getObj(%max_security_id, 'info'); | |||
alert(oInfo.getFolderPluginData('ViewSource!')); | |||
'''AdHunter object support the following method:''' | |||
Method: | |||
'''reloadFilter(filter_name)''' – reload the specified Maxthon filter (currently content filter only) after modifying the relevant filter | |||
Example: | |||
var oAdHunter=external.max_getObj(%max_security_id, 'AdHunter'); | |||
oAdHunter.reloadFilter('content'); | |||
'''enableFilter(filter_name, bEnable)''' – enable or disable Maxthon's 'content' or 'popup' filter | |||
Example: | |||
var oAdHunter=external.max_getObj(%max_security_id, 'AdHunter'); | |||
oAdHunter.enableFilter ('content', false); | |||
'''PluginManager object support the following method:''' | |||
'''getPluginFolder''' - return Maxthon main plugin folder path | |||
Example: | |||
var oPluginManager=external.max_getObj(%max_security_id, 'PluginManager'); | |||
alert(oPluginManager.getPluginFolder) | |||
'''getCount''' - return the number of all installed plugins, both enabled and disabled | |||
Example: | |||
var oPluginManager=external.max_getObj(%max_security_id, 'PluginManager'); | |||
alert(oPluginManager.getCount) | |||
'''getList''' - return a list which contains information like name, author etc of all plugins | |||
Example: | |||
var oPluginManager=external.max_getObj(%max_security_id, 'PluginManager'); | |||
alert(oPluginManager.getList) | |||
'''getPlugin(Index)''' - Index is a number, return the corresponding plugin object | |||
Example: | |||
var oPluginManager=external.max_getObj(%max_security_id, 'PluginManager'); | |||
var oPlugin=oPluginManager.getPlugin(0); | |||
'''The plugin object returned from getPlugin(Index) supports the following property and method:''' | |||
Property: | |||
'''title''' - read only, return plugin name | |||
Example: | |||
alert(oPlugin.title); | |||
'''folderName''' - read only, return plugin's folder name | |||
Example: | |||
alert(oPlugin.folderName); | |||
'''fullPath''' - read only, return plugin folder's full path | |||
Example: | |||
alert(oPlugin.fullPath); | |||
'''enable''' - read/write, return or set if the plugin is enabled | |||
Example: | |||
oPlugin.enable=false; | |||
alert(oPlugin.enable); | |||
oPlugin.enable=true; | |||
alert(oPlugin.enable); | |||
'''startAfterPageDone''' - read/write, return or set if the plugin is auto started | |||
Example: | |||
oPlugin.startAfterPageDone = true; | |||
alert(oPlugin.startAfterPageDone); | |||
oPlugin.startAfterPageDone = false; | |||
alert(oPlugin.startAfterPageDone); | |||
'''startAfterPageDoneUrl''' - read/write, return or set the address where the plugin will be auto started | |||
Example: | |||
oPlugin.startAfterPageDoneUrl='*maxthon.com*|*maxthon.cn*'; | |||
alert(oPlugin.startAfterPageDoneUrl); | |||
Methods: | |||
'''config()''' - open plugin configuration dialog (config.html) | |||
Example: | |||
oPlugin.config(); | |||
'''remove()''' - delete the plugin | |||
Example: | |||
oPlugin.remove(); | |||
== Mscript == | |||
Maxthon 2.0 supports custom mscript in addition to normal script for script button plugins. Unlike normal script,mscript is not run on webpages and so mscript does not subject to security restrictions imposed on normal script, and does not need to worry about being exploit by webpages. mscript can greatly enhance the functionality of script plugins since mscript can operate with scripting disabled and mscript can access contents in cross domain frames. To use mscript in a Script button plugin, replace the <script...> tag with <mscript...> | |||
Example - the following script button plugin can disable scripting in the current page by changing Maxthon's content control: | |||
<script language="javascript"> | |||
external.m2_run_cmd(%max_security_id, 33175); | |||
</script> | |||
But after scripting is disabled, the plugin cannot operate. So it cannot re-enable scripting in the current page. On the other hand the following mscript plugin can operate with scripting disabled, so it can renable scripting in the current page. | |||
<mscript language="javascript"> | |||
external.m2_run_cmd(0, 33175); | |||
</script> | |||
Note an arbitrary number can be used as %max_security_id when mscript is used | |||
Version du 24 septembre 2008 à 07:20
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'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.
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 - Le Plugin COM peut être écrit en n'importe quel langage de programmation supporté par MSCOM, comme C++, Delphi, Visual Basic, C# etc. Les Plugins COM sont créés par onglet lors de la création d'un onglet (Types SideBar/Toolbar/MHO/COM_Button) ou lorsque le bouton du Plugin est cliqué (Type Button), et est détruit lorsque l'onglet est fermé. Un Plugin COM peut implémenter l'interface IObjectWithSite pour obtenir le pointeur "webbrowser" de l'onglet, l'évênement du navigateur et le Document Object Model pour le manipuler.
COM_Global - Les Plugins COM_Global sont crées 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 commances ci-dessous des Plugins script), pour interagir avec le Document Object Model des onglets et Maxthon.
Notez que Maxthon 2.0 est "multi-thread" (un "thread" pour chaque onglet). Les Plugins développés pour une intération intensive 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 efficassement 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és lorsque le bouton sera cliqué. Optionnellement, 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 menu est clicqué, etc. Un Plugin de bouton COM est crée 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 écris en COM. Un 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 Plugin de barre d'outils COM sont crées par onglet lorsque l'onglet est crée, et sont détruit lorsque l'onglet est fermé. Celà permet l'adoption de certaines barre d'outils d'IE dans Maxthon avec le minimum ou aucun chagement. Les barre d'outils COM_Global sont crées seulement au démarrage de Maxthon, et sont détruis à la fermeture de Maxthon. Si une barre d'outils COM_Global implémente l'interface IObjectWithSite, elle peut obtenir le pointeur sur webbrowser de l'onglet actif à travers SetSite. Lorsque l'onglet actif est modifié, SetSite sera appelé de nouveau pour passer le pointeur sur webbrowser du nouvel onglet actif.
COM_Button - Les Plugins COM_Button sont indentiques 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 flexibilité de positionnement dans l'interface de Maxthon comme les autres boutons, mais il supporte également l'amélioration de l'interface d'une barre d'outils par rapport à un bouton.
MHO - Un Plugin MHO est identique au Browser Helper Object d'IE et doit être écrit en COM. Les Plugins MHO sont crées par onglet lorsque l'onglet est crée, et sont détruit lorsque l'onglet est fermé. Les Plugins MHO doivent implémenter l'interface IObjectWithSite pour obtenir un pointeur sur webbrowser de l'onglet pour intéragir 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ées par onglet lorsque l'onglet est crée, et sont détruit 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étriute lorsque l'operation est terminée. Le Plugin MHO_Button ajoute esseciellement une interface bouton au Plugin MHO.
Créer un Plugin pour Maxthon
Composants majeurs dun 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'operation à réaliser ou le contenu à afficher.
Fichier Icônes – L'icône du bouton (*.ICO) nécessaire aux Plugins bouton et barre latérale. Le Plugin COM et EXE peut avoir besoins d'icônes dans ces propres ressources.
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 eancré 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. Si il n'est pas défini, 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éfini les adresses où le Plugin doit démarrer automatiquement, supporte les caractères jocker, 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éfini où 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 distribué.
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 glissé/déplacé 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
Maxthon Script Plugin Commands
Maxthon provides various plugin commands to improve the capability of Script plugins. These plugin commands can be run through the window.external object. Some plugin commands requires a Security ID generated by Maxthon to be run.
How to obtain the Security ID
1. Script button plugins can use "%max_security_id" for the Security ID
2. Script sidebar plugins and HTML button plugins have to load "max.src", a script generated by Maxthon. Then "max_security_id" can be used。
<script src=max.src></script>
Reference for Maxthon Plugin Commands
Unless specified otherwise, the following plugin commands are applicable for both Maxthon 2.0 and Maxthon 1.X。
1. max_version - return Maxthon's version number
Example:
alert(external.max_version);
2. max_language_id - return Maxthon's language ID
Example:
alert(external.max_language_id);
Note: Maxthon 2.0 and Maxthon 1.X have different language ID format
3. tab_count - return the number of tabs opened by Maxthon
Example:
alert(external.tab_count);
4. cur_sel - return the index of Maxthon's current tab
Example:
alert(external.cur_sel);
5. m2_plugin_folder( security_id , plugin_name ) - return the folder path of the specified plugin
Example:
alert(external.m2_plugin_folder( %max_security_id , 'ViewSource!'));
6. m2_run_cmd( security_id , command_id ) - run the specified command ID
Example:
external. m2_run_cmd( %max_security_id , 32772 ));
Note: Maxthon 2.0 and Maxthon 1.X have different command ID. Command ID can be found in Maxthon's language file.
7. get_tab( security_id , tab_index ) - return the window object of the specifed tab
Example:
var oWin=external.get_tab(%max_security_id, 0); alert(oWin.document.URL);
8. activate_tab( security_id , tab_index ) - activate the specified tab
Example:
external.activate_tab(%max_security_id, 0);
9. close_tab( security_id , tab_index ) - close the specified tab
Example:
external.close_tab(%max_security_id, 0);
10. readFile( security_id, plugin_name, file_name) - read the content of specified text file
Example:
var sText=external.readFile(%max_security_id, 'ViewPage', 'readme.txt'); alert(sText);
11. writeFile( security_id, plugin_name, file_name, content ) - write content to the specific text file
Example:
external.writeFile(%max_security_id, 'ViewPage', 'test.txt', 'This is the file content');
12. m2_readIni( security_id, plugin_name , file_name , section_name , key , default_value) - read data from specific INI file
Example:
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 ) - write data to specific INI file
Example:
external.m2_writeIni(%max_security_id, 'ViewPage', 'test.ini', 'Config', 'height', '100px');
14. max_modelessDialog( security_id , url , option , attr , window ) - returns a modeless web page dialog
Example:
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) - return specified ActiveX object
Example:
var oWSH=external.max_activex(%max_security_id, 'WScript.Shell'); oWSH.run('notepad.exe');
16. m2_search_text(security_id) - return the text in search bar
Example:
alert(m2_search_text(%max_security_id));
17. max_callback(event_name) - a function which is run when certain Maxthon events happen (for HTML button plugins and Script sidebar plugins)
HTML button plugins and Script sidebar plugins can implement the max_callback function for reacting to certain Maxthon browser events like switching to a different tab.
Example:
function max_callback(x){ if(x=='tab_change') alert('Current tab is changed.'); }
By checking the parameter of the max_callback function, plugin can get the following browser events:
HTML button plugins
tab_change – after the current tab is switched
document_Complete - after the current tab is fully loaded
self_destroy - when the html is unloaded, usually when Maxthon exits
Script sidebar plugins
sidebar_tab_change - after the current tab is switched
sidebar_activate - when the sidebar plugin is activated
sidebar_deactivate - when the sidebar plugin is deactivated
sidebar_unload - when the sidebar plugin is unloaded (Maxthon is closed)
18. max_getObj (for Maxthon 2.0 only) - return various Maxthon objects, including:
Info - general information about Maxthon
Adhunter – about Ad Hunter
FavManager – about Favorites
RssManager – about RSS
PluginManager - about Plugins, for Maxthon 2.0.5 or later
Example:
var oInfo=external.max_getObj(%max_security_id, 'info');
Info Object supports the following property and method:
Property:
fileProxy - read-only, returns the path of the current user's proxy configuration document.
Example:
var oInfo=external.max_getObj(%max_security_id, 'info'); alert(oInfo.fileProxy);
folderUser - read-only, returns the path of the profile folder of the current user
Example:
var oInfo=external.max_getObj(%max_security_id, 'info'); alert(oInfo. folderUser);
Method:
getFolderPluginData(plugin_name) - obtain the path of plugin data storage folder for the current user and the plugin
Example:
var oInfo=external.max_getObj(%max_security_id, 'info'); alert(oInfo.getFolderPluginData('ViewSource!'));
AdHunter object support the following method:
Method:
reloadFilter(filter_name) – reload the specified Maxthon filter (currently content filter only) after modifying the relevant filter
Example:
var oAdHunter=external.max_getObj(%max_security_id, 'AdHunter'); oAdHunter.reloadFilter('content');
enableFilter(filter_name, bEnable) – enable or disable Maxthon's 'content' or 'popup' filter
Example:
var oAdHunter=external.max_getObj(%max_security_id, 'AdHunter'); oAdHunter.enableFilter ('content', false);
PluginManager object support the following method:
getPluginFolder - return Maxthon main plugin folder path
Example:
var oPluginManager=external.max_getObj(%max_security_id, 'PluginManager'); alert(oPluginManager.getPluginFolder)
getCount - return the number of all installed plugins, both enabled and disabled
Example:
var oPluginManager=external.max_getObj(%max_security_id, 'PluginManager'); alert(oPluginManager.getCount)
getList - return a list which contains information like name, author etc of all plugins
Example:
var oPluginManager=external.max_getObj(%max_security_id, 'PluginManager'); alert(oPluginManager.getList)
getPlugin(Index) - Index is a number, return the corresponding plugin object
Example:
var oPluginManager=external.max_getObj(%max_security_id, 'PluginManager'); var oPlugin=oPluginManager.getPlugin(0);
The plugin object returned from getPlugin(Index) supports the following property and method:
Property:
title - read only, return plugin name
Example:
alert(oPlugin.title);
folderName - read only, return plugin's folder name
Example:
alert(oPlugin.folderName);
fullPath - read only, return plugin folder's full path
Example:
alert(oPlugin.fullPath);
enable - read/write, return or set if the plugin is enabled
Example:
oPlugin.enable=false; alert(oPlugin.enable); oPlugin.enable=true; alert(oPlugin.enable);
startAfterPageDone - read/write, return or set if the plugin is auto started
Example:
oPlugin.startAfterPageDone = true; alert(oPlugin.startAfterPageDone); oPlugin.startAfterPageDone = false; alert(oPlugin.startAfterPageDone);
startAfterPageDoneUrl - read/write, return or set the address where the plugin will be auto started
Example:
oPlugin.startAfterPageDoneUrl='*maxthon.com*|*maxthon.cn*'; alert(oPlugin.startAfterPageDoneUrl);
Methods:
config() - open plugin configuration dialog (config.html)
Example:
oPlugin.config();
remove() - delete the plugin
Example:
oPlugin.remove();
Mscript
Maxthon 2.0 supports custom mscript in addition to normal script for script button plugins. Unlike normal script,mscript is not run on webpages and so mscript does not subject to security restrictions imposed on normal script, and does not need to worry about being exploit by webpages. mscript can greatly enhance the functionality of script plugins since mscript can operate with scripting disabled and mscript can access contents in cross domain frames. To use mscript in a Script button plugin, replace the <script...> tag with <mscript...>
Example - the following script button plugin can disable scripting in the current page by changing Maxthon's content control:
<script language="javascript"> external.m2_run_cmd(%max_security_id, 33175); </script>
But after scripting is disabled, the plugin cannot operate. So it cannot re-enable scripting in the current page. On the other hand the following mscript plugin can operate with scripting disabled, so it can renable scripting in the current page.
<mscript language="javascript"> external.m2_run_cmd(0, 33175); </script>
Note an arbitrary number can be used as %max_security_id when mscript is used
Vue d'ensemble
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 window.external dans une page HTML ou par un Plugin de type script réalisé pour Maxthon.
Quelques fonctions nécessiteront security_id comme premier paramètre. Ces fonctions peuvent seulement être utilisées par des Plugins.
Afin d'avoir un security_id pour votre plugin, vous devez procéder ainsi :
Plugins de type Bouton
Insérez un %max_security_id dans votre script, comme ceci :
var security_id=%max_security_id;
Ainsi vous pourrez utiliser la variable security_id dans votre script.
Plugins de type Barre latérale
Un fichier nommé max.src sera créé dans le dossier de votre Plugin, inclure ce fichier dans votre fichier HTML :
<script type="text/javascript" src="max.src"></script>
Ainsi vous pourrez utiliser la variable max_security_id comme paramètre identificateur de sécurité dans votre script.
Index
Propriétés étendues
- max_version : Obtenir la version courante de Maxthon
- max_language_id : Obtenir l'id de la langue courante de l'interface utilisateur de Maxthon
- current_tab (cur_sel) : Obtenir l'index de l'onglet en cours
- tab_count : Obtenir le nombre d'onglets ouvert en cours
Méthodes générales
- addFavorite() : Appeler la boîte de dialogue Ajouter un Favori
- addProxy() : Appeler la boîte de dialogue Ajouter un Proxy
- addFilter() : Appeler la boîte de dialogue Ajouter un Filtre
- max_addProxyProvider() : Appeler la boîte de dialogue Ajouter un Fournisseur de Proxy
- m2_run_cmd() : Exécuter la fonction de Maxthon correspondant à la commande ID
- m2_search_text() : Obtenir la chaîne de recherche de la barre de recherche de Maxthon
- m2_plugin_folder() : Obtenir le dossier local des Plugins
Méthodes associées aux onglets
- get_tab() : Obtenir l'objet d'un onglet par index
- activate_tab() : Activer un onglet par index
- close_tab() : Fermer un onglet par index
Méthodes associées aux fichiers
- readFile() : Lire le contenu d'un fichier
- writeFile() : Ecrire des données dans un fichier
- m2_readIni() : Lire un fichier INI
- m2_writeIni() : Ecrire dans un fichier INI
Propriétées étendues
max_version
Remarques :
Cette propriété retournera une chaîne de caractères indiquant le numéro de version de Maxthon.
La chaîne sera formatée de la façon suivante : "2.1.0.600".
Il est suggéré d'utiliser cette propriété pour déterminer si Maxthon est en cours d'exécution.
Exigences :
Maxthon version 2.0+
Exemple :
max_language_id
Remarques :
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.
la liste des ID utilisés par Maxthon se trouve ici :
http://msdn.microsoft.com/library/?url=/library/en-us/intl/nls_238z.asp
Exigences :
Maxthon version 1.0+
Exemple :
alert('Language ID='+external.max_language_id);
====current_tab==== (formerly cur_sel ) Non encore implémenté
Remarques :
Cette propriété retournera un nombre entier qui représente l'index de l'onglet qui est actif.
null sera retourné s'il n'y a auncun onglet d'ouvert.
current_tab a été introduit dans Maxthon v2.0 en remplacement de cur_sel
parce que le nom de l'ancienne propriété était trop obscur à comprendre.
Exigences :
Maxthon version 2.0+ (utiliser cur_sel pour les versions 1.x)
Exemple :
tab_count
Remarques :
Cette propriété retournera le nombre d'onglet en cours sous la forme d'un entier.
Exigences :
Maxthon version 1.0+
Exemple :
alert('Tabs Count: '+external.tab_count);
Méthodes générales
addFavorite(url [, title])
Paramètres :
url : chaîne
L'url à ajouter.
title : chaîne
Optionnel. Le titre de l'url.
Remarques :
Affiche la boîte de dialogue Ajouter un Favori pour demander à l'utilisateur d'ajouter un nouveau Favori.
Cette fonction retournera faux si l'utilisateur a annulé cette opération.
Exigences :
Maxthon version 1.0+
Exemple :
external.addFavorite("http://www.maxthon.com");
external.addFavorite("http://www.maxthon.com", "Site officiel de Maxthon");
addProxy(name, address, type)
Paramètres :
name : chaîne
Le nom du Proxy.
address : chaîne
L'adresse IP ou le nom de domaine du Proxy.
type : entier
Un nombre indiquant la vitesse du Proxy.
= Proxy HTTP, 1 = Proxy SOCKS4A, 2 = Proxy SOCKS5
Remarques :
Ajoute un nouveau Proxy dans liste des Proxy de Maxthon. Une boîte de dialogue sera présentée à l'utilisateur.
Cette fonction retournera faux si l'utilisateur a annulé cette opération.
Exigences :
Maxthon version 2.0+
Exemple :
external.addProxy("My proxy","192.168.1.0:8080", 1);
addFilter(url_mask, type)
Paramètres :
url_mask : chaîne
Masque d'adresse qui correspond aux adresses à bloquer. Supporte les expressions régulières.
type : entier
Un nombre indiquant la liste de filtres à ajouter.
= Filtre de Popup, 1 = Filtre de contenu
Remarques :
Ajoute une nouvelle politique de filtrage dans Maxthon. Une boîte de dialogue sera présentée à l'utilisateur.
Cette fonction retournera faux si l'utilisateur a annulé cette opération.
Exigences :
Maxthon version 2.0+
Exemple :
external.addFilter("http://www.advertisement.com/img/*", );
max_addProxyProvider(URL)
Paramètres :
URL : chaîne
L'URL du fichier de la liste des Proxy. Pour le format du fichier, se reporter à [proxyprovider.htm ce document].
Remarques :
Ajoute un nouveau fournisseur de Proxy dans Maxthon. Une boîte de dialogue sera présentée à l'utilisateur.
Cette fonction retournera faux si l'utilisateur a annulé cette opération.
Exigences :
Maxthon version 2.0+
Exemple :
external.max_addProxyProvider("http://www.freeproxy.cn/m2proxy/proxylist.xml");
m2_run_cmd(security_id, command_id)
Paramètres :
security_id : chaîne
ID de sécurité de Maxthon.
command_id : entier
L'ID de la commande interne de Maxthon.
Remarques :
Cette fonction appellera une commande de Maxthon avec le command_id spécifié.
De nombreux ID de commande peuvent être trouvés dans le fichier langage dans le répertoire langage de Maxthon.
L'ID de la commande peut être différent suivant la version.
N'utilisez pas cette fonction si ce n'est pas nécessaire.
Exigences :
Maxthon version 1.0+
Exemple :
external.m2_run_cmd(security_id, 32772); // Ouvre une page vierge
m2_search_text(security_id)
Paramètres :
security_id : chaîne
ID de sécurité de Maxthon.
Remarques :
Cette fonction retournera le texte de la barre de recherche de Maxthon sous la forme d'une chaîne.
Exigences :
Maxthon version 1.2+
Exemple :
var searchText=external.m2_search_text(security_id);
m2_plugin_folder(security_id, plugin_name)
Paramètres :
security_id : chaîne
ID de sécurité de Maxthon.
plugin_name : chaîne
Le nom du Plugin comme défini dans le fichier plugin.ini.
Remarques :
Cette fonction retournera le dossier local du Plugin spécifié sous la forme d'une chaîne.
Exigences :
Maxthon version 1.2+
Exemple :
var pluginPath=external.m2_plugin_folder(security_id, "ViewSource!");
m2_callerName(security_id, plugin_name)
Paramètres :
security_id : chaîne
ID de sécurité de Maxthon.
plugin_name : chaîne
Le nom du Plugin comme défini dans le fichier plugin.ini.
Remarques :
Cette fonction indiquera à Maxthon la fonction suivante appelée à partir du Plugin.
Cette fonction est habituellement utilisée avant l'ouverture de la méthode window.open()
pour bypasser le bloqueur de Popup de Maxthon pour le Plugin.
Exigences :
Maxthon version 1.2+
Exemple :
external.m2_callerName(security_id, "ViewSource!");
window.open("about:blank");
max_actSideBarItem(plugin_name)
Paramètres :
plugin_name : chaîne
Le nom du Plugin comme défini dans le fichier plugin.ini.
Remarques :
Cette fonction activera le Plugin de la barre latérale avec le nom indiqué.
Exigences :
Maxthon version 1.2+
Exemple :
external.max_actSideBarItem("Calculator++");
max_modelessDialog(security_id, url, arguments, features, parent_window)
Paramètres :
security_id : chaîne
ID de sécurité de Maxthon.
url : chaîne
L'url du contenu de la boîte de dialogue.
arguments : variante
Les arguments passés à l'objet window.dialogArguments de la boîte de dialogue .
features : chaîne
Une chaîne qui spécifie les caractéristiques de la fenêtre de la boîte de dialogue.
parent_window : objet
La racine de l'objet window de la boîte de dialogue.
Remarques :
Cette fonction est à peu près la même que window.showModelessDialog() mais avec 2 paramètres de plus.
Avec le security_id votre Plugin peut bypasser le bloqueur de Popup de Maxthon.
Avec le parent_window vous pouvez créer la boîte de dialogue qui est une fille d'une autre window de l'onglet.
Exigences :
Maxthon version 1.2+
Exemple :
external.max_modelessDialog(security_id, "about:blank", {"userid": 7, "key": "d3fe3asd"}, "status:no; help:no; resizable:yes; scroll:yes;", window);
get_tab(security_id, index)
Paramètres :
security_id : chaîne
ID de sécurité de Maxthon.
index : entier
L'index de l'onglet à obtenir.
Remarques :
Cette fonction obtiendra l'objet window de l'onglet spécifié dans Maxthon.
null sera retourné si l'onglet n'existe pas.
Exigences :
Maxthon version 1.0+
Exemple :
var objTab=external.get_tab(security_id, 5);
activate_tab(security_id, index)
Paramètres :
security_id : chaîne
ID de sécurité de Maxthon.
index : entier
L'index de l'onglet à activer.
Remarques :
Cette fonction activera l'onglet spécifié dans Maxthon.
Il ne se passera rien si l'onglet n'existe pas.
Exigences :
Maxthon version 1.0+
Exemple :
external.activate_tab(security_id, 1);
close_tab(security_id, index)
Paramètres :
security_id : chaîne
ID de sécurité de Maxthon.
index : entier
Entier. L'index de l'onglet à fermer.
Remarques :
Cette fonction fermera l'onglet représentant l'index.
Il ne se passera rien si l'onglet n'existe pas.
Exigences :
Maxthon version 1.0+
Exemple :
external.close_tab(security_id, );
readFile(security_id, plugin_name, file_name)
Paramètres :
security_id : chaîne
ID de sécurité de Maxthon.
plugin_name : chaîne
Le nom du Plugin appelé indiqué dans le fichier plugin.ini
file_name : chaîne
Le ficher à lire.
Remarques :
Cette fonction peut seulement être utilisée dans un Plugin.
La fonction retournera le contenu du fichier dans une chaîne en cas de succès.
Si le Plugin n'est pas actif ou que le plugin_name n'est pas trouvé, la fonction échouera et retournera null.
Exigences :
Maxthon version 1.0+
Exemple :
var strFile=external.readFile(security_id, "Test plugin", "plugin.ini");
writeFile(security_id, plugin_name, file_name, content)
Paramètres :
security_id : chaîne
ID de sécurité de Maxthon.
plugin_name : chaîne
Le nom du Plugin appelant comme indiqué dans le fichier plugin.ini
file_name : chaîne
Le fichier à écrire.
content : chaîne
Chaîne du contenu du fichier à écrire.
Remarques :
Cette fonction ne peut être utilisée que dans un Plugin.
Cette fonction retournera vrai en cas de succès.
Si le fichier n'est pas trouvé, le plugin n'est pas actif ou le plugin_name n'est pas trouvé,
la fonction échouera et retournera faux.
Si un fichier avec le même nom existe, il sera écrasé.
Exigences :
Maxthon version 1.0+
Exemple :
external.writeFile(security_id, "Test plugin", "setting.ini", "username=abc\npass=qwrxcv");
m2_readIni(security_id, plugin_name, file_name, section_name, key, default_value)
Paramètres :
security_id : chaîne
ID de sécurité de Maxthon.
plugin_name : chaîne
Le nom du Plugin appelant comme indiqué dans le fichier plugin.ini.
file_name : chaîne
Le nom du fichier INI à lire.
section_name : chaîne
La section INI à lire, sans crochet [ ].
key : chaîne
La clé de l'entrée à lire.
default_value : chaîne
La valeur par défaut à retourner si la clé n'existe pas.
Remarques :
Cette fonction lira la valeur de la key sous la section section_name dans le fichier INI file_name.
Le fichier INI doit se trouver dans le dossier du Plugin plugin_name.
La valeur sera retournée sous la forme d'une string en cas de succès.
Si le fichier n'existe pas, la section n'existe pas ou la clé n'existe pas, la default_value sera retournée.
Exigences :
Maxthon version 1.0+
Exemple :
var saveCount = external.m2_readIni(security_id, "TestPlugin", "settings.ini", "general", "saveCount", "0");
m2_writeIni(security_id, plugin_name, file_name, section_name, key, value)
Paramètres :
security_id : chaîne
ID de sécurité de Maxthon.
plugin_name : chaîne
Le nom du Plugin appelant comme indiqué dans le fichier plugin.ini.
file_name : chaîne
Le nom du fichier INI à écrire.
section_name : chaîne
La section INI à écrire, sans crochet [ ].
key : chaîne
La clé de l'entrée à écrire.
value : chaîne/entier
La valeur à écrire.
Remarques :
Cette fonction écrira une key et une paire de value sous la section section_name dans le fichier INI file_name.
Le fichier INI ne peut être écrit que dans le dossier du Plugin plugin_name.
Si le fichier n'existe pas, la section n'existe pas ou la clé n'existe pas, ils seront créés automatiquement.
Cette fonction retournera vrai en cas de succès et faux en cas d'échec.
Exigences :
Maxthon version 1.0+
Exemple :
external.m2_writeIni(security_id, "TestPlugin", "settings.ini", "general", "saveCount", 25);