[Javascript] Exécuter un *.js depuis l'URL

Résolu
Bonjour,
Dans un navigateur, on peut exécuter du JS en faisant, par exemple :
javascript: alert("Truc");

Je me demandais si on pouvait exécuter un fichier *.js en faisant comme en-haut, ou sinon en JS en général.

Merci d'avance.

9 réponses

  1. Merci infiniment ! C'est exactement ce que je cherchais ! Merci, merci, merci !
    1. Voici ce qu'il faut sur :
      * Firefox : installer l'extension "https://addons.mozilla.org/fr/firefox/addon/greasemonkey/ GreaseMonkey]". Quand cette extension est installée, il suffit de taper l'url du script (même si il est sur le disque dur) et Greasemonkey se chargera du reste. Pour chaque mise à jour du script, tu dois le réinstaller (en mettant l'url).
      * Opera : sauvegardez le script sur votre disque dur, puis faites : Outils → Préférences → Avancé → Contenu → Options JavaScript, et indiquez le répertoire contenant le script.
      * Chrome : voir ici

      Voici la base d'un userscript :
      // ==UserScript==
      // @name           Nom
      // @namespace      http://www.example.com/userscript/informations.html
      // @description    Description
      // @include        http://www.example.com/
      // @version        Octo 07, 2009 - 1.0
      // @author         Nom Prénom
      // ==/UserScript==


      @name : Le nom de ton userscript
      @namespace : Page d'informations sur le script
      @description : ...
      @include : Le site sur lequel le script doit fonctionner. Exemples : http://*.commentcamarche.net/*, https://www.commentcamarche.net/*, https://www.commentcamarche.net/
      @version : ...
      @author : ...
      Si tu veux inclure une librairie (JQuery par exemple) :
      @require http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js

      Voici un exemple d'userscript pour ce site (ajoute un bouton dans le menu en haut) - Tester :
      // ==UserScript==
      // @name           CommentCaMarche - HideHeader
      // @namespace      https://www.commentcamarche.net/
      // @description    Ce script ajoute un bouton "Masquer" sur la barre de navigation qui permet de masquer l'entête
      // @include        http://*.commentcamarche.net/*
      // @version        1.0
      // @author         Avion-f16
      // @require        http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js
      // ==/UserScript==
      
      $(document).ready(function() {
      	$("#nav ul").append("<li><a href=\"#\" id=\"hideheader\">Masquer</a></li>");
      	$("#hideheader").click(function() {
      		$("#header").slideUp('fast');
      		return false;
      	});
      });
      1. D'après le nom, il me semble que c'est ce que je cherche à faire. J'attends la réponse avec joie !
        1. En gros, tu veux faire un Userscript ?
          Si oui, je te dirai comment quand je rentrai de l'école.
          1. Je n'ai pas la moindre idée ce qu'est le XSS, mais mon script ne fait pas de mal, il change juste des aspects graphiques. Je vais essayer l'idée de monkey_monk et vous donnerai des nouvelles.
            1. Le script doit être chargé dans la page que l'utilisateur voit pour pouvoir exécuter l'une de ses fonctions... sinon tu sembles parler d'injection... et tous les sites actuel se protègent contre ça !

              Le seul moyen serait d'injecter l'include du script (<script src= etc...) pour ensuite pouvoir activer certaines fonctions.

              C'est bien ça que tu demandes ?
              1. hummm! c'est pas du XSS ça?
              2. @ACKC'est ce que je me disais aussi... mais comme ça le terme est lâché ! ;)
            2. Pardon de ne pas avoir été très clair...
              En fait, mon script modifie certains apects d'une page web quelconque. Par exemple, si on avait un script qui met tous les fonds des div en bleu, et qu'on voulait l'exécuter sur CCM, pourrait on, une fois la page chargée, exécuter ce script (qui est chez l'utilisateur) ?
              Du genre :
              javascript: truc.js;

              C'est plus clair ou encore plus flou ?
              1. Pardon mais...
                'comprends pas ta question... tu veux quoi ?

                Exécuter une fonction qui est dans un .js ? Si oui il faut l'inclure dans ta page HTML :

                <head>
                <script type="text/javascript" src="[lienverstonfichier.js]"></script>

                </head>

                Ensuite tu pourras utiliser ta fonction de la manière dont tu l'as cité. ;)