Quantcast
Channel: & pourquoi j’n’écrirais pas ça ? » plugin
Viewing all articles
Browse latest Browse all 8

eval(function(p,a,c,k,e,r)

$
0
0

Plutot que de réinventer la roue à chaque fois, on utilise régulièrement des bibliothèques de code, des applications toutes faites qui répondent à nos besoins…
Parmi tant d’autres, j’utilise par exemple Piwigo et WordPress

Ces solutions sont hautement personnalisables et offrent la possibilité de développer et/ou d’installer des extensionsW. (bow)

Cependant, il arrive que certaines extensions soient boguées ou plus maintenues… Parfois, ce n’est pas grand chose et l’on voudrait pouvoir faire la modification nécessaire afin de corriger le soucis…

Concrètement, j’ai vu que j’avais un petit bogue sur mon blog qui empêchait la navigation sur les précédents commentaires depuis le widget de la barre de droite… Les fichiers JavaScript utilisés sont compressés afin d’optimiser les temps de téléchargement… Aidé de Firebug (love) , il ne m’a fallu que quelques minutes pour trouver un lien suspect… J’ai alors utilisé la version de développement fournie par le développeur de l’extension pour effectuer la modification que je voulais tester… Cool, ça fonctionne…

Compress JavaScript

Mais ne souhaitant pas laisser la version de dev en prod, j’ai cherché et très rapidement trouvé comment compresser cette version de développement… Afin d’avoir à nouveau un script commençant par eval(function(p,a,c,k,e,r)

Il suffit simplement d’aller sur cette page, de coller son script, de cocher les cases nécessaires sur la droite, puis de cliquer sur le bouton Pack. (y)

Bien sûr, pour qu’un texte soit compressé, plus il sera long, plus cela sera intéressant.. Néanmoins, à titre d’exemple, voila ce que l’on peut obtenir :

  • Au départ :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <html>
      <head>
        <title>Test Compression</title>
        <script type="text/javascript">
          function hw() {
            alert('Hello world!');
          }
        </script>
      </head>
      <body onload="javascript:hw();">
        Hi!
      </body>
    </html>
  • Après avoir compressé le code placé entre les balise <script /> :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <html>
      <head>
        <title>Test Compression</title>
        <script type="text/javascript">
          eval(function(p,a,c,k,e,r){e=String;if(!''.replace(/^/,String)){while(c--)r[c]=k[c]||c;k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('0(\'1 2!\');',3,3,'alert|Hello|world'.split('|'),0,{}))
        </script>
      </head>
      <body onload="javascript:hw();">
        Hi!
      </body>
    </html>

Par ailleurs, lorsque l’on n’a pas le fichier de développement, on peut quand même utiliser la même page web pour décoder un script précédemment compressé. Personnellement j’utilise une nouvelle fois mon Firebug pour supprimer la lecture seule du champ de saisie et la désactivation du bouton : ;)

Au départ

Au départ


Décodeur disponible

Décodeur disponible


Viewing all articles
Browse latest Browse all 8

Latest Images





Latest Images