« Tutorial Plugin : 4 - Astuces » : différence entre les versions
Aucun résumé des modifications |
Aucun résumé des modifications |
||
Ligne 61 : | Ligne 61 : | ||
<i> | <i> | ||
Maintenant les sites Web ne peuvent utiliser votre variable "pr" et ils pourront continuer à travailler s'ils utilisent aussi une varaible appelée "pr".<b>Note : </b> Vous devez mettre "var" avant la variable pour qu'elle soit une variable locale. | Maintenant les sites Web ne peuvent utiliser votre variable "pr" et ils pourront continuer à travailler s'ils utilisent aussi une varaible appelée "pr". | ||
<br><b>Note : </b> Vous devez mettre "var" avant la variable pour qu'elle soit reconnue comme étant une variable locale. | |||
</i> | </i> | ||
Ligne 81 : | Ligne 82 : | ||
<i> | <i> | ||
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 : | 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 : | ||
</i> | </i> | ||
Ligne 108 : | Ligne 109 : | ||
Voici diverses "snippets" en javascript que vous pouvez utilisez dans vos plugins : | Voici diverses "snippets" en javascript que vous pouvez utilisez dans vos plugins : | ||
</i> | </i> | ||
<br> | <br><br> | ||
<b>Get the selected text, also on frames.</b> | <b>Get the selected text, also on frames.</b> | ||
Toolbar Version: | Toolbar Version: | ||
<i> | |||
><br> | |||
<b>Obtenir le texte sélectionné également dans les cadres (frames).</b> | |||
<br><b>Version Barre d'outils:</b> | |||
</i> | |||
<pre> | <pre> | ||
var keyword='' | var keyword='' | ||
Ligne 126 : | Ligne 134 : | ||
keyword+=document.selection.createRange().text | keyword+=document.selection.createRange().text | ||
</pre> | </pre> | ||
Sidebar Version: | Sidebar Version: | ||
<br> | |||
<i> | |||
<b>Version Barre latérale :</b> | |||
</i> | |||
<pre> | <pre> | ||
//active tab | //active tab | ||
Ligne 145 : | Ligne 160 : | ||
<b>Create an ActiveX object (thanks to That1ComputerGuy)</b> | <b>Create an ActiveX object (thanks to That1ComputerGuy)</b> | ||
<i> | |||
<br> Créer un objet ActiveX (merci à That1ComputerGuy)</b> | |||
</i> | |||
<pre> | <pre> | ||
function createAX(obj) { | function createAX(obj) { | ||
Ligne 165 : | Ligne 184 : | ||
alert(xmlDoc.xml); | alert(xmlDoc.xml); | ||
</pre> | </pre> | ||
Sidebar plugins don't need this funtion, they can use <span class=code>var xmlDoc = external.max_activex(max_security_id,'Microsoft.XMLDOM')</span> directly | Sidebar plugins don't need this funtion, they can use <span class=code>var xmlDoc = external.max_activex(max_security_id,'Microsoft.XMLDOM')</span> directly | ||
<i> | |||
Les plugins de barre latérale n'ont pas besoin de cette fonction, Ils peuvent utiliser | |||
<span class=code>var xmlDoc = external.max_activex(max_security_id,'Microsoft.XMLDOM')</span> directement.</i> | |||
<br> | |||
<b>Load/save (ini)files easier with these functions:</b> | <b>Load/save (ini)files easier with these functions:</b> | ||
<i> | |||
<b>Charger/sauvegarder facilement les fichiers (ini) avec ces fonctions : | |||
</b> | |||
</i> | |||
<pre> | <pre> | ||
sid=%max_security_id | sid=%max_security_id | ||
Ligne 185 : | Ligne 215 : | ||
} | } | ||
</pre> | </pre> | ||
Now you can read/write files like this: | Now you can read/write files like this: | ||
<i> | |||
Maintenant, vous pouvez lire/écrire des fichiers comme ceci : | |||
</i> | |||
<pre> | <pre> | ||
//write 'thisIsATest' to text.txt, located in the plugin folder | //write 'thisIsATest' to text.txt, located in the plugin folder | ||
Ligne 205 : | Ligne 241 : | ||
alert(ReadIni('test','')) | alert(ReadIni('test','')) | ||
</pre> | </pre> | ||
For sidebar plugins you should replace <span class=code>%max_security_id</span> with <span class=code>max_security_id</span> | For sidebar plugins you should replace <span class=code>%max_security_id</span> with <span class=code>max_security_id</span> | ||
<i> | |||
Pour les plugins de barre latérale vous devrait remplacer <span class=code>%max_security_id</span> par <span class=code>max_security_id</span> | |||
</i> | |||
<br> | |||
<b>Insert an external javascript into a webpage</b> | <b>Insert an external javascript into a webpage</b> | ||
<i> | |||
<b>Insérer du (code) javascript extérieur dans une page Web</b> | |||
</i> | |||
This can be useful if you insert a button into a webpage and want a function to be executed if the user clicks the button. | This can be useful if you insert a button into a webpage and want a function to be executed if the user clicks the button. | ||
<i> | |||
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. | |||
</i> | |||
<pre> | <pre> | ||
//create an element | //create an element | ||
Ligne 220 : | Ligne 271 : | ||
document.documentElement.appendChild(elmnt); | document.documentElement.appendChild(elmnt); | ||
</pre> | </pre> | ||
This will insert 'test.js' located in your plugins folder into a webpage. | This will insert 'test.js' located in your plugins folder into a webpage. | ||
NOTE: you get a security alert if you are on a HTTPS website, like gmail.com. | NOTE: you get a security alert if you are on a HTTPS website, like gmail.com. | ||
For sidebar plugins you should replace <span class=code>%max_security_id</span> with <span class=code>max_security_id</span> | For sidebar plugins you should replace <span class=code>%max_security_id</span> with <span class=code>max_security_id</span> | ||
<i> | |||
Ceci insérera "test.js", situé dans le dossier de votre plugin, dans une page Web.<br>Note : Vous aurrez une alerte de sécrité 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 <span class=code>%max_security_id</span> par <span class=code>max_security_id</span> | |||
</i> | |||
= Upload your plugin = | = Upload your plugin = | ||
=<i>Mise à jour de votre plugin</i> = | |||
You should compress your plugin into a .zip archive. All files need to be inside a folder. | You should compress your plugin into a .zip archive. All files need to be inside a folder. | ||
If you don't put your files inside a folder, users have to do that themself and that is not very efficient/friendly. | If you don't put your files inside a folder, users have to do that themself and that is not very efficient/friendly. | ||
<i> | |||
Vous devez compresser votre plugin dans un fichier ".zip". Tous les fichiers nécessaires doivent être dans le même dossier. Si vous ne le faites pas, les utilsateurs devront le faire eux-mêmes et cela n'est pas ni très "amicale", ni très efficace. | |||
</i> | |||
It's not recommended to put the files in a .rar archive, since not everybody can decompress those files. | It's not recommended to put the files in a .rar archive, since not everybody can decompress those files. | ||
<i> | |||
Il n'est pas recommandé de mettre les fichiers du plugin dans un fichier ".rar", car peu de gens peuvent/savent décompresser ce type de fichier. | |||
</i> | |||
You can safely remove the 'max.src' and 'thumbs.db' files from the archive if they exist. | You can safely remove the 'max.src' and 'thumbs.db' files from the archive if they exist. | ||
<i> | |||
Vous pouvez en toute sécurité enlever les fichiers "max.src" et "Thumb.db" du fichier compressé s'ils existent. | |||
</i> | |||
If you update your plugin don't forget to update the version number too, to avoid confusion. | If you update your plugin don't forget to update the version number too, to avoid confusion. | ||
<I> | |||
Si vous mettez à jour votre plugin n'oubliez pas de mettre à jour le numéro de version, pour éviter toute confusion. | |||
</i> | |||
= Other Plugins = | = Other Plugins = | ||
=<i>Autres plugins</i< = | |||
These plugins can be useful for web developers: | These plugins can be useful for web developers: | ||
<i> | |||
Ces plugins peuvent être utiles aux développeurs de pages Web : | |||
</i><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) | ||
Ligne 240 : | Ligne 328 : | ||
= Problems? = | = Problems? = | ||
=<i>Problèmes ?</i>= | |||
If you have a problem with your plugin, or you don't know how to do something you can always view the source of other plugins.This is an excellent way to start programming, just modify another plugin.You really learn a lot by just looking and understanding somebody's code!But if you use a lot of code from another plugin don't forget to ask permission to the author of that plugin! | If you have a problem with your plugin, or you don't know how to do something you can always view the source of other plugins.This is an excellent way to start programming, just modify another plugin.You really learn a lot by just looking and understanding somebody's code!But if you use a lot of code from another plugin don't forget to ask permission to the author of that plugin! | ||
<i> | |||
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 et d'essayer de modifier un plugin existant.Vous apprendrez beuqcoup en regardant et en comprenant le code de quelqu'un d'autre ! Mais si vous utilisez beaucoup de code pris dans un autre plugin, n'oubliez pas de demander la permission à l'auteru de ce plugin. | |||
</i> | |||
= Questions? = | = Questions? = | ||
=<i>Question ?</i> = | |||
You can ask all plugin questions on the [http://forum.maxthon.com/forum/index.php Maxthon Forum].You can post your comments about this tutorial in this [http://forum.maxthon.com/forum/index.php?showtopic=20575 topic]. | You can ask all plugin questions on the [http://forum.maxthon.com/forum/index.php Maxthon Forum].You can post your comments about this tutorial in this [http://forum.maxthon.com/forum/index.php?showtopic=20575 topic]. | ||
<i> | |||
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> | |||
Vous pouvez poster vos commentaires sur ce tutoriel : | |||
</i> | |||
© Copyright 2005. Tutorial made by Neo101. | © Copyright 2005. Tutorial made by Neo101. | ||
Version 1.12 01-09-2005 | Version 1.12 01-09-2005 |
Version du 4 octobre 2005 à 08:24
It's recommended to put a toolbar plugin inside an anonymous function. This makes sure that you don't get problems with variables and it makes sure that websites can't use your functions and security_id.
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èmes avec les variables et que les sites Web ne peuvent pas utiliser vos fonctions et vos "security_id".
An anonymous function looks like this:
(funtion() { //your code }())
Une fonction anonyme ressemble à ceci :
(funtion() { //your code }())
The example in part 1 in an anonymous function is:
<script language="JavaScript"> (funtion() { var pr=confirm('Would you like to go activate tab number 2?') if(pr==true) external.activate_tab(%max_security_id,2) }()) </script>
L'exemple de fonction anonyme de la Partie 1 de ce tutoriel est :
<script language="JavaScript"> (funtion() { var pr=confirm('Would you like to go activate tab number 2?') if(pr==true) external.activate_tab(%max_security_id,2) }()) </script>
Now websites can't use your variable 'pr' and the websites will still work if they are also using a variable called 'pr'.Note: You have to put 'var' before the variable to make it a local variable!
Maintenant les sites Web ne peuvent utiliser votre variable "pr" et ils pourront continuer à travailler s'ils utilisent aussi une varaible appelée "pr".
Note : Vous devez mettre "var" avant la variable pour qu'elle soit reconnue comme étant une variable locale.
If you use max_activex or any other new Maxthon command, make sure that the users gets an error message if he doesn't have the correct Maxthon version. For example:
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('Sorry. This plugin only works with Maxthon 1.2.1 and higher!') }
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 fonctionnne qu'avec Maxthon 1.2.1 et les versions supérieures !') }
Snippets
Snippets de Javascript
Here are some Javascript Snippets that you can use in your plugins:
Voici diverses "snippets" en javascript que vous pouvez utilisez dans vos plugins :
Get the selected text, also on frames.
Toolbar Version:
>
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
Sidebar Version:
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
Create an ActiveX object (thanks to That1ComputerGuy)
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);
Sidebar plugins don't need this funtion, they can use var xmlDoc = external.max_activex(max_security_id,'Microsoft.XMLDOM') directly
Les plugins de barre latérale n'ont pas besoin de cette fonction, Ils peuvent utiliser
var xmlDoc = external.max_activex(max_security_id,'Microsoft.XMLDOM') directement.
Load/save (ini)files easier with these functions:
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) }
Now you can read/write files like this:
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',''))
For sidebar plugins you should replace %max_security_id with max_security_id
Pour les plugins de barre latérale vous devrait remplacer %max_security_id par max_security_id
Insert an external javascript into a webpage
Insérer du (code) javascript extérieur dans une page Web
This can be useful if you insert a button into a webpage and want a function to be executed if the user clicks the button.
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);
This will insert 'test.js' located in your plugins folder into a webpage. NOTE: you get a security alert if you are on a HTTPS website, like gmail.com. For sidebar plugins you should replace %max_security_id with max_security_id
Ceci insérera "test.js", situé dans le dossier de votre plugin, dans une page Web.
Note : Vous aurrez une alerte de sécrité 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
Upload your plugin
Mise à jour de votre plugin
You should compress your plugin into a .zip archive. All files need to be inside a folder. If you don't put your files inside a folder, users have to do that themself and that is not very efficient/friendly.
Vous devez compresser votre plugin dans un fichier ".zip". Tous les fichiers nécessaires doivent être dans le même dossier. Si vous ne le faites pas, les utilsateurs devront le faire eux-mêmes et cela n'est pas ni très "amicale", ni très efficace.
It's not recommended to put the files in a .rar archive, since not everybody can decompress those files.
Il n'est pas recommandé de mettre les fichiers du plugin dans un fichier ".rar", car peu de gens peuvent/savent décompresser ce type de fichier.
You can safely remove the 'max.src' and 'thumbs.db' files from the archive if they exist.
Vous pouvez en toute sécurité enlever les fichiers "max.src" et "Thumb.db" du fichier compressé s'ils existent.
If you update your plugin don't forget to update the version number too, to avoid confusion.
Si vous mettez à jour votre plugin n'oubliez pas de mettre à jour le numéro de version, pour éviter toute confusion.
Other Plugins
Autres plugins</i<
These plugins can be useful for web developers:
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)
- DevArt By Arthur R (view the source, view all tags, validate webpages and more)
Problems?
Problèmes ?
If you have a problem with your plugin, or you don't know how to do something you can always view the source of other plugins.This is an excellent way to start programming, just modify another plugin.You really learn a lot by just looking and understanding somebody's code!But if you use a lot of code from another plugin don't forget to ask permission to the author of that 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 et d'essayer de modifier un plugin existant.Vous apprendrez beuqcoup en regardant et en comprenant le code de quelqu'un d'autre ! Mais si vous utilisez beaucoup de code pris dans un autre plugin, n'oubliez pas de demander la permission à l'auteru de ce plugin.
Questions?
Question ?
You can ask all plugin questions on the Maxthon Forum.You can post your comments about this tutorial in this topic.
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