Tutorial Plugin : 3 - Commandes de Maxthon
Maxthon a maintenant plus de 20 commandes. De nombreuses commandes fonctionnent seulement dans les plugins, mais certaines peuvent aussi être utilisées sur des pages Web normales.
Vous pouvez appeler ces commandes avec l'objet "window.external". Parce qu'il est possible pour les pages Web d'utiliser ces commandes, de nombreuses commandes nécessitent maintenant un "security_id" (une identification de sécurité).
Un "security_id" est une variable qui ressemble à ceci : "{DCFC4598-B97C-49B6-8108-EE86F8694283}". Le "security_id" change chaque fois que vous relancez votre navigateur.
- Pour les plugins de script, vous devez utiliser %max_security_id dans le fichier de script, tel que 'var security_id=%max_security_id', alors vous pourrez utiliser 'security_id' dans votre script.
NOTE : Les pages Web sont capables d'obtenir cette variable security_id si vous lancez un plugin sur une page Web et si la page Web connaît la variable que vous stockez dans le max_security_id. Vous pouvez éviter un litige de sécurité si vous mettez tout votre code dans une fonction anonyme. [Vous trouverez plus d'informations sur les fonctions anonymes dans la 4ème Partie].
- Pour les plugins de barre latérale, un fichier nommé "max.src" sera créé dans le dossier de votre plugin avec la variable max_security_id comme étant le security_id. Vous pouvez inclure ce fichier dans votre page html pour obtenir l'"id" (identifiant).
Comme ceci :
<lang="html4strict"><script language="JavaScript" type="text/JavaScript" src="max.src"></script>
Ce code devrait être placé à l'intérieur de la balise <head>.
Vous trouverez ci-dessous, les commandes DHTML de Maxthon, n'oubliez pas de les faire précéder de 'external' ! :
- readFile( security_id, plugin_name, file_name) 'plugin_name' fait référence au nom du plugin défini dans le fichier plugin.ini et 'file_name' indique le nom du fichier qu'il veut lire (situé dans le dossier plugin). Ce nom de fichier peut comporter un chemin, tel que 'data\settings.ini' pour lire le fichier 'settings.ini' dans le dossier 'data'.
Le nom de fichier peut également comporter '..' pour lire le dossier parent, par exemple : '..\..\config\plugins.ini' pour lire le fichier plugin.ini dans le sous-dossier 'Maxthon\config'. Vous ne pouvez pas utiliser '..' plus de deux fois, ainsi vous ne pourrez pas lire/écrire des fichiers en dehors du dossier où Maxthon est situé (pour une meilleure sécurité).
La commande retournera le contenu du fichier. Si le plugin n'est pas activé, ou si le nom du plugin n'est pas correct ou n'est pas trouvé, la commande échouera et retournera "null".
Cette commande ne peut que lire des fichiers texte au format ANSI.
Exemple : var text = external.readFile(%max_security_id, "Test plugin","export.txt")
- writeFile( security_id, plugin_name, file_name, content ) Cette fonction ne peut être utilisée que dans un script de plugin, pour des raisons de sécurité.
'plugin_name' se réfère au nom du plugin défini dans plugin.ini et 'file_name' indique le nom du fichier qui doit être écrit. 'content' est le contenu qui sera écrit dans le fichier. Si le plugin n'est pas capable d'écrire ou que le nom du plugin et erroné ou non trouvé, la fonction se terminera sur une erreur et retournera "null".
Cette commande peut seulement écrire des fichiers au format texte. Aussi, la commande ajoute un caractère NULL à la fin du fichier. Celà n'a pas beaucoup d'importance, mais rend impossible d'écrire un fichier au format XML. Vous devez utiliser pour cela FileSystemObject (un composant ActiveX).
Notez : Le fichier sera écrasé à partir du début.
Pour ajouter du contenu à un fichier, lire la donnée du premier fichier, puis ajouter la nouvelle donnée et écrire la donnée.
Exemple : external.writeFile(%max_security_id,"Test plugin","setting.ini","username=abc\npass=qwrxcv");
- m2_readIni( security_id, plugin_name , file_name , section_name , key , default_value) Cette fonction lira la clé dans le fichier ini spécifié par 'file_name' dans le répertoire du plugin. Elle retournera 'default_value' si la clé n'est pas disponible ou si 'file_name' ou 'plugin_name' sont erronés.
Exemple: path = external.m2_readIni(%max_security_id,"testplugin","settings.ini","general","save","0");
external.m2_writeIni(%max_security_id,"testplug", "settings.ini","general","save","1")
Exemple: external.m2_writeIni(%max_security_id,"testplugin","settings.ini","general","save","true");
var total_tab = external.tab_count
Exemple: var total_tab = external.tab_count
external.activate_tab(%max_security_id,2)
Exemple: external.activate_tab(%max_security_id,2)
external.close_tab(%max_security_id,2)
external.close_tab(%max_security_id,2)
var doc = external.get_tab(%max_security_id,2).document
Exemple: external.get_tab(%max_security_id,2).document
var cur_tab = external.cur_sel
Exemple: var cur_tab = external.cur_sel;
var folder = external.m2_plugin_folder(%max_security_id, "ViewSource!")
This will return for example: "C:\Program Files\Maxthon\Plugin\ViewSource!\"
Exemple: var folder = external.m2_plugin_folder(%max_security_id,"ViewSource!"); Ceci retourne par exemple : "C:\Program Files\Maxthon\Plugin\ViewSource!\"
external.m2_run_cmd(%max_security_id,32772)This will open a blank page.
Exemple: external.m2_run_cmd(%max_security_id,32772); //Ceci ouvre une page vierge.
external.m2_callerName(%max_security_id,"ViewSource!")
Exemple: external.m2_callerName(%max_security_id,"ViewSource!")
external.max_showConfig(%max_security_id,"ViewSource!")
Exemple: external.max_showConfig(%max_security_id,"ViewSource!")
external.m2_callerName(%max_security_id,'PLUGINNAME') window.open('about:blank','_blank') var XML=external.get_tab(%max_security_id, external.cur_sel).external.max_activex( %max_security_id, "Microsoft.XMLDOM") external.get_tab(%max_security_id,external.cur_sel).close()
Cette commande peut seulement être appeler de pages locales.
Un nouvel onglet est une 'page locale' pour Maxthon. <pre<Exemple: var XML=external.max_activex(%max_security_id,"Microsoft.XMLDOM")
external.max_modelessDialog(%max_security_id, 'example.htm',window, 'status:no;help:no; resizable:yes;scroll:yes;',window)
Exemple: external.max_modelessDialog(%max_security_id,'example.htm',window,'status:no;help:no;resizable:yes;scroll:yes;',window)
var language=external.max_language_id
Exemple: var language=external.max_language_id
external.max_actSideBarItem("Calculator++")
Exemple: external.max_actSideBarItem("Calculator++");
external.addFavorite( "http://www.google.com" ) external.addFavorite( "http://www.google.com","This is google")
Exemple 1: external.addFavorite( "http://www.google.com" );
Exemple 2: external.addFavorite( "http://www.google.com","C'est google");
external.addProxy("My proxy","192.168.1.0:8080",1,0)
Exemple: external.addProxy("Mon proxy","192.168.1.0:8080",1,0);
external.addFilter("http://www.yahoo.com/ad*") external.addFilter("http://www.yahoo.com/img/*", 0)
Exemple 1: external.addFilter("http://www.yahoo.com/ad*");
Exemple 2: external.addFilter("http://www.yahoo.com/img/*", 0);
javascript:external.m2_addSearchEngine('SteadySearch', 'http://www.steadysearch.com/search?p=Q&ts=ne&w=%us');
javascript:external.m2_addSearchEngine('SteadySearch', 'http://www.steadysearch.com/search?p=Q&ts=ne&w=%us');
var text = external.m2_search_text(%max_security_id)
Exemple: var text = external.m2_search_text(%max_security_id)
In a sidebar plugin you can implement a script function called max_callback(status).
- When the plugin is created the URL will be filename?maxcmd=init
- When the plugin is activated, max_callback('sidebar_activate') will be called
- When the plugin is deactivated, max_callback('sidebar_deactivate') will be called
- When the active tab is changed, max_callback('sidebar_tab_change') will be called
- When the plugin is unload, max_callback('sidebar_unload') will be called.
Dans un plugin de barre latérale vous pouvez insérer une fonction script appelée max_callback(status).
- Quand le plugin est créé l'adresse URL sera filename?maxcmd=init
- Qand le plugin est activé, max_callback('sidebar_activate') sera appelé
- Quand le plugin est désactivé, max_callback('sidebar_deactivate') sera appelé
- Quand l'onglet actif est modifié, max_callback('sidebar_tab_change') sera appelé
- Quand le plugin sera fermé, max_callback('sidebar_unload') sera appelé.