« Tutorial Plugin : 4 - Astuces » : différence entre les versions
Aucun résumé des modifications |
mAucun résumé des modifications |
||
(10 versions intermédiaires par 2 utilisateurs non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
__TOC__ | __TOC__ | ||
Il est recommandé de mettre un plugin de barre d'outils à l'intérieur d'une fonction anonyme. Ainsi, vous serez certain de ne pas avoir de problème avec les variables et que les sites Web ne pourront pas utiliser vos fonctions et vos "security_id". | |||
Une fonction anonyme ressemble à ceci : | Une fonction anonyme ressemble à ceci : | ||
<pre> | <pre> | ||
Ligne 28 : | Ligne 11 : | ||
}()) | }()) | ||
</pre> | </pre> | ||
Ligne 50 : | Ligne 20 : | ||
(funtion() { | (funtion() { | ||
var pr=confirm(' | var pr=confirm('Voulez-vous activer l'onglet numéro 2 ?') | ||
if(pr==true) external.activate_tab(%max_security_id,2) | if(pr==true) external.activate_tab(%max_security_id,2) | ||
}()) | }()) | ||
Ligne 58 : | Ligne 28 : | ||
Maintenant, les sites Web ne peuvent pas utiliser votre variable "pr" et ils pourront continuer à fonctionner s'ils utilisent aussi une variable nommée "pr". | |||
<br /><b>Note : </b> Vous devez mettre "var" avant la variable pour qu'elle soit reconnue comme étant une variable locale. | |||
Si vous utilisez "max_activex" ou n'importe quelle autre nouvelle commande de Maxthon, soyez sûr que les utilisateurs auront un message d'erreur s'ils n'ont pas la version correcte de Maxthon.<br />Par exemple : | |||
Si vous utilisez "max_activex" ou n'importe quelle autre nouvelle commande de Maxthon, soyez sûr que les utilisateurs auront un message d'erreur s'ils n'ont pas la version correcte de Maxthon.<br>Par exemple : | |||
<pre> | <pre> | ||
Ligne 95 : | Ligne 44 : | ||
} | } | ||
catch(err){ | catch(err){ | ||
alert('Désolé. Ce plugin ne | alert('Désolé. Ce plugin ne fonctionne qu'avec Maxthon 1.2.1 et supérieures !') | ||
} | } | ||
</pre> | </pre> | ||
= | = Snippets de JavaScript = | ||
< | Voici diverses "snippets" en JavaScript que vous pouvez utiliser dans vos plugins : | ||
><br> | <br /><br /> | ||
<b>Obtenir le texte sélectionné également dans les cadres (frames).</b> | <b>Obtenir le texte sélectionné également dans les cadres (frames).</b> | ||
<br><b>Version Barre d'outils:</b | <br /><b>Version Barre d'outils:</b> | ||
<pre> | <pre> | ||
Ligne 136 : | Ligne 73 : | ||
<b>Version Barre latérale :</b> | <b>Version Barre latérale :</b> | ||
<pre> | <pre> | ||
Ligne 159 : | Ligne 92 : | ||
keyword+=doc.selection.createRange().text </pre> | keyword+=doc.selection.createRange().text </pre> | ||
<b> | <br /><b> Créer un objet ActiveX (merci à That1ComputerGuy)</b> | ||
<pre> | <pre> | ||
function createAX(obj) { | function createAX(obj) { | ||
Ligne 185 : | Ligne 115 : | ||
</pre> | </pre> | ||
Les plugins de barre latérale n'ont pas besoin de cette fonction, Ils peuvent utiliser <span class=code>la variable <b>xmlDoc = external.max_activex(max_security_id,'Microsoft.XMLDOM')</b></span> directement. | |||
<br /> | |||
Les plugins de barre latérale n'ont pas besoin de cette fonction, Ils peuvent utiliser | |||
<span class=code> | |||
<br | |||
<b>Charger/sauvegarder facilement les fichiers (ini) avec ces fonctions : | <b>Charger/sauvegarder facilement les fichiers (ini) avec ces fonctions : | ||
</b> | </b> | ||
<pre> | <pre> | ||
sid=%max_security_id | sid=%max_security_id | ||
Ligne 216 : | Ligne 138 : | ||
</pre> | </pre> | ||
Maintenant, vous pouvez lire/écrire des fichiers comme ceci : | Maintenant, vous pouvez lire/écrire des fichiers comme ceci : | ||
<pre> | <pre> | ||
Ligne 242 : | Ligne 160 : | ||
</pre> | </pre> | ||
Pour les plugins de barre latérale vous devrez remplacer <b><span class=code>%max_security_id</span></b> par <b><span class=code>max_security_id</span></b> | |||
Pour les plugins de barre latérale vous | |||
<b>Insérer du (code) JavaScript extérieur dans une page Web</b> | |||
<b>Insérer du (code) | |||
Cela peut être très utile si vous insérez un bouton dans une page Web et que vous voulez qu'une commande précise soit utilisée si le surfeur clique sur ce bouton. | |||
<pre> | <pre> | ||
//create an element | //create an element | ||
Ligne 272 : | Ligne 179 : | ||
</pre> | </pre> | ||
Ceci insérera "test.js", situé dans le dossier de votre plugin, dans une page Web.<br />Note : Vous aurez une alerte de sécurité si vous avez un site web en HTTP<b>S</b>, comme "gmail.com".<br /> Pour les plugins de barre latérale, vous devrez remplacer <b><span class=code>%max_security_id</span></b> par <b><span class=code>max_security_id</span></b> | |||
= | = Mise à jour de votre plugin = | ||
Vous devez compresser votre plugin dans un fichier archive ".zip". Tous les fichiers nécessaires doivent être dans le même dossier. Si vous ne le faites pas, les utilisateurs devront le faire eux-mêmes et cela n'est pas ni très efficace, ni très "amical ". | |||
Il n'est pas recommandé de mettre les fichiers du plugin dans un fichier archive ".rar", car peu de gens peuvent/savent décompresser ce type de fichier. | |||
Vous pouvez en toute sécurité enlever, s'ils existent, les fichiers "max.src" et "Thumb.db" du fichier archive compressé. | |||
Si vous mettez à jour votre plugin n'oubliez pas de mettre à jour aussi le numéro de version, pour éviter toute confusion. | |||
= Autres plugins = | |||
Ces plugins peuvent être utiles aux développeurs de pages Web : | Ces plugins peuvent être utiles aux développeurs de pages Web : | ||
</ | <br /> | ||
<ul> | <ul> | ||
<li>[http://maxthon.tarapages.com/plugins/pafiledb.php?action=file&id=468 ViewPage] By Ptma (view the source of a webpage, extra all images, view meta data and more) | <li>[http://maxthon.tarapages.com/plugins/pafiledb.php?action=file&id=468 ViewPage] By Ptma (view the source of a webpage, extra all images, view meta data and more)<br> Une traduction française de ce plugin existe [http://www.ldfa.net/logitheque.php?fiche=21 ici] | ||
<li>[http://maxthon.tarapages.com/plugins/pafiledb.php?action=file&id=684 DevArt] By Arthur R (view the source, view all tags, validate webpages and more) | <li>[http://maxthon.tarapages.com/plugins/pafiledb.php?action=file&id=684 DevArt] By Arthur R (view the source, view all tags, validate webpages and more) | ||
</ul> | </ul> | ||
= Problèmes ? = | |||
Si vous avez des problèmes avec votre plugin, ou si vous ne savez pas comment faire quelque chose, vous pouvez toujours aller voir la source d'autres plugins. Un excellent moyen pour commencer à programmer est d'essayer de modifier un plugin existant. Vous apprendrez beaucoup en regardant et en cherchant à comprendre le code de quelqu'un d'autre, mais si vous utilisez beaucoup de code prit dans un autre plugin, n'oubliez pas de demander la permission à l'auteur de ce plugin. | |||
Si vous avez des problèmes avec votre plugin, ou si vous ne savez pas comment faire quelque chose vous pouvez toujours aller voir la source d'autres plugins. Un excellent moyen pour commencer à programmer | |||
= | = Question ? = | ||
Vous pouvez poser vos questions sur les plugins sur [http://forum.maxthon.com/forum/index.php Maxthon Forum (anglais)] ou [http://www.ldfa.net/forum/index.php Le Forum de Maxthon (français)] | Vous pouvez poser vos questions sur les plugins sur [http://forum.maxthon.com/forum/index.php Maxthon Forum (anglais)] ou [http://www.ldfa.net/forum/index.php Le Forum de Maxthon (français)] | ||
<br> | <br> | ||
Vous pouvez poster vos commentaires sur ce tutoriel : | Vous pouvez poster vos commentaires sur ce tutoriel : | ||
© Copyright 2005. Tutorial made by Neo101. | © Copyright 2005. Tutorial made by Neo101. | ||
Version 1.12 01-09-2005 | Version 1.12 01-09-2005 |
Dernière version du 2 juillet 2008 à 14:50
Il est recommandé de mettre un plugin de barre d'outils à l'intérieur d'une fonction anonyme. Ainsi, vous serez certain de ne pas avoir de problème avec les variables et que les sites Web ne pourront pas utiliser vos fonctions et vos "security_id".
Une fonction anonyme ressemble à ceci :
(funtion() { //your code }())
L'exemple de fonction anonyme de la Partie 1 de ce tutoriel est :
<script language="JavaScript"> (funtion() { var pr=confirm('Voulez-vous activer l'onglet numéro 2 ?') if(pr==true) external.activate_tab(%max_security_id,2) }()) </script>
Maintenant, les sites Web ne peuvent pas utiliser votre variable "pr" et ils pourront continuer à fonctionner s'ils utilisent aussi une variable nommée "pr".
Note : Vous devez mettre "var" avant la variable pour qu'elle soit reconnue comme étant une variable locale.
Si vous utilisez "max_activex" ou n'importe quelle autre nouvelle commande de Maxthon, soyez sûr que les utilisateurs auront un message d'erreur s'ils n'ont pas la version correcte de Maxthon.
Par exemple :
try{ 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() } catch(err){ alert('Désolé. Ce plugin ne fonctionne qu'avec Maxthon 1.2.1 et supérieures !') }
Snippets de JavaScript
Voici diverses "snippets" en JavaScript que vous pouvez utiliser dans vos plugins :
Obtenir le texte sélectionné également dans les cadres (frames).
Version Barre d'outils:
var keyword='' //document.frames.length is the number of frames for(i=0;i< document.frames.length;i++) { //the try/catch part is for external frames. //They cause an error (acces denied) //and this code ignores that error try { keyword += document.frames[i].document.selection.createRange().text } catch(err){} } //if a page doesn't have frames keyword+=document.selection.createRange().text
Version Barre latérale :
//active tab var doc = external.get_tab(max_security_id, external.cur_sel).document var keyword='' //doc.frames.length is the number of frames for(i=0;i< doc.frames.length;i++) { //the try/catch part is for external frames. //They cause an error and this code ignores that error try {keyword += doc.frames[i].document.selection.createRange().text} catch(err){} } //if a page doesn't have frames keyword+=doc.selection.createRange().text
Créer un objet ActiveX (merci à That1ComputerGuy)
function createAX(obj) { var tempWin = window.open('about:blank','') //open a window //create an activeX object in the new window var axObj = tempWin.external.max_activex(%max_security_id, obj) tempWin.close() //close the window return axObj //return the ActiveX object } // The following code is not necessary, it's just for testing purposes //run the function above var xmlDoc = createAX('Microsoft.XMLDOM'); //wait untill the complete XML document is loaded xmlDoc.async = false; //load the xml document xmlDoc.load('http://www.w3schools.com/xml/note.xml') //alert the document alert(xmlDoc.xml);
Les plugins de barre latérale n'ont pas besoin de cette fonction, Ils peuvent utiliser la variable xmlDoc = external.max_activex(max_security_id,'Microsoft.XMLDOM') directement.
Charger/sauvegarder facilement les fichiers (ini) avec ces fonctions :
sid=%max_security_id pluginname='PLUGINNAME' function WriteFile(FileName,Data) { external.writeFile(sid,pluginname,FileName,Data) } function ReadFile(FileName) { return external.readFile(sid,pluginname,FileName) } function WriteIni(Key, Data) { external.m2_writeIni(sid, pluginname,"plugin.ini","Settings", Key, Data) } function ReadIni(Key, Default) { return external.m2_readIni(sid, pluginname,"plugin.ini","Settings", Key, Default) }
Maintenant, vous pouvez lire/écrire des fichiers comme ceci :
//write 'thisIsATest' to text.txt, located in the plugin folder WriteFile('text.txt','thisIsATest') //alert the content of 'text.txt' alert(ReadFile('text.txt')) //alert the 'test' key in plugin.ini, //return 'not yet defined!' if the key is not available alert(ReadIni('test','not yet defined!')) //write key 'test' WriteIni('test','defined') //alert the content of key 'test', return '' if not available //(shouldn't happen now, //since you have just written 'defined' to the key) alert(ReadIni('test',''))
Pour les plugins de barre latérale vous devrez remplacer %max_security_id par max_security_id
Insérer du (code) JavaScript extérieur dans une page Web
Cela peut être très utile si vous insérez un bouton dans une page Web et que vous voulez qu'une commande précise soit utilisée si le surfeur clique sur ce bouton.
//create an element elmnt=document.createElement('<script src="'+ external.m2_plugin_folder(%max_security_id, 'PLUGINNAME')+ 'test.js"><\/script>'); //Add this element into the 'head' of a webpage document.documentElement.appendChild(elmnt);
Ceci insérera "test.js", situé dans le dossier de votre plugin, dans une page Web.
Note : Vous aurez une alerte de sécurité si vous avez un site web en HTTPS, comme "gmail.com".
Pour les plugins de barre latérale, vous devrez remplacer %max_security_id par max_security_id
Mise à jour de votre plugin
Vous devez compresser votre plugin dans un fichier archive ".zip". Tous les fichiers nécessaires doivent être dans le même dossier. Si vous ne le faites pas, les utilisateurs devront le faire eux-mêmes et cela n'est pas ni très efficace, ni très "amical ".
Il n'est pas recommandé de mettre les fichiers du plugin dans un fichier archive ".rar", car peu de gens peuvent/savent décompresser ce type de fichier.
Vous pouvez en toute sécurité enlever, s'ils existent, les fichiers "max.src" et "Thumb.db" du fichier archive compressé.
Si vous mettez à jour votre plugin n'oubliez pas de mettre à jour aussi le numéro de version, pour éviter toute confusion.
Autres plugins
Ces plugins peuvent être utiles aux développeurs de pages Web :
- ViewPage By Ptma (view the source of a webpage, extra all images, view meta data and more)
Une traduction française de ce plugin existe ici - DevArt By Arthur R (view the source, view all tags, validate webpages and more)
Problèmes ?
Si vous avez des problèmes avec votre plugin, ou si vous ne savez pas comment faire quelque chose, vous pouvez toujours aller voir la source d'autres plugins. Un excellent moyen pour commencer à programmer est d'essayer de modifier un plugin existant. Vous apprendrez beaucoup en regardant et en cherchant à comprendre le code de quelqu'un d'autre, mais si vous utilisez beaucoup de code prit dans un autre plugin, n'oubliez pas de demander la permission à l'auteur de ce plugin.
Question ?
Vous pouvez poser vos questions sur les plugins sur Maxthon Forum (anglais) ou Le Forum de Maxthon (français)
Vous pouvez poster vos commentaires sur ce tutoriel :
© Copyright 2005. Tutorial made by Neo101. Version 1.12 01-09-2005