Javascript: modifier fonction dynamiquement ?

joachim109 -  
 Forrest -
Bonjour,

je voulais savoir s'il est possible en javascript de modifier une fonction dejà definie, de manière dynamique.

Par exemple :

J'ai un script JS appelé dans le head du document HTML.
Ce script défini une fonction :
masuperfonction() {
    toto = jojo; 
}



Je souhaite que sur un évènement, par exemple onclick sur un élément, cette fonction soit redéfinie, par exemple :
masuperfonction() {
    toto = momo;
}


Est-ce possible ?
comment faire ?
merci !

5 réponses

.Alphaorionis Messages postés 188 Date d'inscription   Statut Membre Dernière intervention   32
 
C'est simple avec Greasemonkey :
unsafeWindow['nomDeLaFonction'] = function(parametres)

Et ensuite il ne te reste plus qu'à mettre les instructions.

Par contre attention, si la fonction appelle d'autres fonction, tu dois mettre " unsafeWindow. " devant pour signaler que c'est une fonction de la page.
1
Nep_51 Messages postés 49 Date d'inscription   Statut Membre Dernière intervention   9
 
A priori, je dirai que c'est pas possible à part si tu passes les éléments changeants en parametre et qu'à partir de ca tu traites de différentes façons...
0
joachim109
 
je n'ai pas accès à la fonction d'origine qui est passée dans le head.

en fait je voudrais tout simplement supprimer cette fonction, ou la remplacer par {return;}
0
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
Si tu n'as pas accès à la fonction, mais au code de la partie html de ta page:

tu rajoutes une nouvelles fonction JS dans le head et tu fais appel à celle ci dans la partie html evenenemnts
0
joachim109
 
Je n'ai pas du bien me faire comprendre, ou alors j'ai mal compris la réponse... :(

Il s'agit d'une page sur un serveur distant.
je peux ajouter des éléments et des scripts dans le head et dans le body via une interface.
mais je ne peux pas modifier le contenu de base, qui comporte notamment une fonction javascript qui m'embête.

QUESTION :
Comment puis-je modifier cette fonction ? ou sinon la supprimer/désactiver.... ?

Merci pour vos réponses
0
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
C'est pas très net ton histoire.

Je ne poursuit donc pas plus loin mon aide.
0
joachim109
 
Je n'arrive donc pas à me faire comprendre ?...
Ca n'est pourtant pas si compliqué...

Allez je réessaye :

- Une fonction est chargée dans le head du doc.
- Je ne peux pas modifier l'apel à cette fonction.
- Je ne peux pas modifier la source de la fonction.
- Je voudrais la modifier, ou à default, la "désactiver" .
- Est-ce possible ?
- Si oui, Comment faire ?

Merci

Joachim
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
Donc tu veux intervenir sur le code d'un site sur lequel tu n'as pas la main.

Cela s'appelle Hacker........
0
joachim109
 
Hacker avec un grand H carrément! ouaou !
bah appelle ça comme tu veux, si tu veux...

Ca n'a rien d'interdit ni d'illégal ni même de mal-intentionné, bien au contraire.

Il arrive souvent avec les sites internet de faire des partenariats, de travailler en collaboration avec d'autres sites. Donc on n'as pas la main sur tout.

En l'occurrence, j'ai déjà bcp la main sur la page en question, je peux y faire et j'y fait bcp de personnalisations.

Si je voulais Hacker cette pages pour d'obscures raisons, je n'aurais aucune difficulté.

Je voulais juste savoir si c'était possible de modifier une fonction js pour l'ajuster à mes besoins, le javascript n'étant pas mon fort...

Si tu ne veux pas répondre à ma question, ne réponds pas. Mais ne me juge pas.

Il me semble que Hacker ou pas c'est plus une question de but que de moyens...

Je ne refuserais pas à quelqu'un de lui apprendre le php ou les requettes SQL sous pretexte qu'il pourrait s'en servir pour Hacker
0
TwK38
 
J'avoue... avec un grand H lol.

En réalité, ça s'appelle modifier du javascript localement, car en aucun cas il n'agit sur la page, mais sur l'affichage qu'il en a.
Je réalise, moi aussi, des scripts greasemonkey, et je serais intéressé sur ce sujet, quelqu'un aurait-il trouvé une solution?
Merci,
TwK38
0
DarkChristou
 
Bonjour,

Je suis confronté au même problème que joachim109 :
- J'utilise une application qui me génère des formulaires sur un serveur distant et qui me retourne l'URL
- Je n'ai pas accès à la structure de la page. Je ne peux qu'ajouter du contenu dans le head et dans le body via une interface
- Je souhaite modifier le comportement de certains javascript généré par l'application

Avez-vous une solution ?

Merci pour vos réponses,
DarkChristou
0
Forrest
 
En passant la fonction dans une variable genre :

var fctn = function(){ alert("ok"); }
fctn();

fctn = function(){ alert("fonction modifiée"); }
fctn();
0
Forrest
 
Ou alors si la fonction n'es pas incluse dans une variable :

function fctn(){ alert("ok"); }
fctn();

fctn = function(){ alert("fonction modifiée"); }
fctn();
0