Javascript: modifier fonction dynamiquement ?

Fermé
joachim109 - 22 mars 2009 à 13:42
 Forrest - 13 déc. 2016 à 22:31
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 !
A voir également:

5 réponses

.Alphaorionis Messages postés 188 Date d'inscription lundi 20 décembre 2004 Statut Membre Dernière intervention 9 mai 2010 32
Modifié par .Alphaorionis le 4/05/2010 à 19:50
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 jeudi 5 février 2009 Statut Membre Dernière intervention 7 avril 2009 9
22 mars 2009 à 13:52
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
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 dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
22 mars 2009 à 17:42
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
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 dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
22 mars 2009 à 20:57
C'est pas très net ton histoire.

Je ne poursuit donc pas plus loin mon aide.
0
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 dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
23 mars 2009 à 10:13
Donc tu veux intervenir sur le code d'un site sur lequel tu n'as pas la main.

Cela s'appelle Hacker........
0
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
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
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
En passant la fonction dans une variable genre :

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

fctn = function(){ alert("fonction modifiée"); }
fctn();
0
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