inclure un fichier JS avec des paramètres

inclure un fichier JS avec des paramètres - HTML/CSS - Programmation

Marsh Posté le 05-03-2007 à 10:41:32    

Bonjour à tous,
 
j'ai vu un code d'inclusion d'un fichier javascript comme ça:
 
<script type="text/javascript" src="JS/scriptaculous.js?load=effects"></script>
 
Je n'avais jamais vu auparavant qu'il était possible de spécifier des paramètres comme ça.
 
J'ai regardé dans les fichiers concernés pour essayer de comprendre comment utiliser ça, mais sans succès. (c'est basé sur le framework Prototype)
 
Comment serait-il possible d'utiliser cette fonctionnalité pour exécuter du javascript différent selon le paramètre utilisé?
 
Ex:
 
<script type="text/javascript" src="JS/tools.js?page=index"></script>
 
Utilise certaines fonctions propres à index
 
<script type="text/javascript" src="JS/tools.js?page=help"></script>
 
Idem, mais avec help
 
Merci d'avance
 
Mike

Reply

Marsh Posté le 05-03-2007 à 10:41:32   

Reply

Marsh Posté le 05-03-2007 à 14:07:58    

En analysant le code de scriptaculous.js que j'ai pioché sur une page on voit clairement qu'il reparse la page actuelle, et qu'il va rechercher toutes les balises scripts appelées et celles qui font appel à un paramètre et à partir de là il va construire les appels d'autres fichiers.
 

Code :
  1. var Scriptaculous = {
  2.   Version: '1.5.1',
  3.   require: function(libraryName) {
  4.     // inserting via DOM fails in Safari 2.0, so brute force approach
  5.     document.write('<script type="text/javascript" src="'+libraryName+'"></script>');
  6.   },
  7.   load: function() {
  8.     if((typeof Prototype=='undefined') ||
  9.       parseFloat(Prototype.Version.split("." )[0] + "." +
  10.                  Prototype.Version.split("." )[1]) < 1.4)
  11.       throw("script.aculo.us requires the Prototype JavaScript framework >= 1.4.0" );
  12.    
  13.     $A(document.getElementsByTagName("script" )).findAll( function(s) {
  14.       return (s.src && s.src.match(/scriptaculous\.js(\?.*)?$/))
  15.     }).each( function(s) {
  16.       var path = s.src.replace(/scriptaculous\.js(\?.*)?$/,'');
  17.       var includes = s.src.match(/\?.*load=([a-z,]*)/);
  18.       (includes ? includes[1] : 'builder,effects,dragdrop,controls,slider').split(',').each(
  19.        function(include) { Scriptaculous.require(path+include+'.js') });
  20.     });
  21.   }
  22. }
  23. Scriptaculous.load();

Reply

Marsh Posté le 05-03-2007 à 19:27:36    

Oh maman [:johneh]

Reply

Marsh Posté le 05-03-2007 à 20:09:36    

Au final c'est pas du tout con justement
 
Au lieu d'avoir  
<script type="text/javascript" src="scriptaculous.js"></script>
 
<script type="text/javascript">
sripctaculous.load("effects" );
sripctaculous.load("totoalaplage.js" );
</script>
 
On a des appels plus propres du genre :
<script type="text/javascript" src="scriptaculous.js?load=effects&load=totovaalaplage"></script>

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed