IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Savoir sur quel objet s'applique une fonction


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 67
    Points : 52
    Points
    52
    Par défaut Savoir sur quel objet s'applique une fonction
    Bonjour,

    J'ai un soucis dans la reprise d'un code, il y a une fonction nommée showSearch et un code de test de cette fonction. Mais, quand je l'exécute, ça me met une erreur "Cet objet ne gère pas cette propriété ou cette méthode" (cf image 1 .... oui, j'utilise Internet Explorer...le code ne marche que là-dessus )

    dans le code, y a ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.showSearch(searchTerm, true);
    , j'ai essayé de lancer la fonction sans objet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    showSearch(searchTerm, true)
    mais là, ça me dit "Objet attendu"

    Donc, j'aimerais savoir quel objet peut appeler cette méthode afin de savoir où je vais. Quelqu'un sait où on peut voir sur quel objet s'applique une fonction javascript ?
    Pour info, les deux seuls endroits où apparaît "showSearch" sont sa déclaration (qui n'est pas dans une classe ou autre truc du style) et l'appel à cette méthode. Pour savoir ça, j'ai utilisé la fonction "chercher dans tous les fichiers" de notepad++.

    J'avoue être totalement bloqué, je pensais trouvé un truc du style "document.prototype..." avec showSearch quelque part pas loin mais non !

    Si quelqu'un a une idée, je suis preneur !!

    Merci beaucoup pour votre aide
    Images attachées Images attachées  

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    C'est un concours de divination du code de la fonction ?

  3. #3
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Si c'est une fonction, il n'y a pas de notion d'objet appelant.
    Ceci dit, si tu nous montrais le code de cette fonction, on pourra probablement t'en dire un peu plus.

  4. #4
    Expert confirmé
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Points : 4 164
    Points
    4 164
    Par défaut
    Si tu as la déclaration de la fonction, tu as quasiment déjà ta réponse...
    Si elle est délcarée au niveau global, elle est une propriété (implicite) de l'objet global window...

    Je ne suis pas sûr de comprendre ce que tu veux résoudre exactement, mais si tu veux connaitre la fonction depuis laquelle elle a été appelée (remonter d'un étage dans l'arbre d'appel si on veut ^^) tu peux inspecter la valeur de arguments.callee.caller pendant l'exécution de showSearch (voire même la valeur de this ^^)...

  5. #5
    Membre expérimenté Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    Décembre 2010
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 009
    Points : 1 519
    Points
    1 519
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.showSearch(searchTerm, true);
    si cela te dit que document n'a pas cette méthode, c'est qu'il ne l'a pas.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    showSearch(searchTerm, true)
    si cela te dit que que cette fonction attend un objet, c'est qu'elle est bien exécutée et que donc elle existe sur l'objet(range) courant, donc probablement "window" ou simplement une fonction(variable) locale.

    donc tu sais déjà où trouver la fonction. maintenant il faut savoir à quel objet l'appliquer.

    si tu penses qu'il faut l'appliquer au "document", tu peux tenter ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    showSearch.call(document,searchTerm,true);

    sinon, effectivement on pourrait t'aider plus simplement si tu nous montrais le code.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 67
    Points : 52
    Points
    52
    Par défaut
    Bonjour à tous, merci pour vos réponse

    Citation Envoyé par SpaceFrog Voir le message
    C'est un concours de divination du code de la fonction ?
    Vous n'êtes pas devins?

    J'ai pas mis le code parce que ça ne change rien, j'ai changé le code par "alert('a')" ça ne marche pas mieux
    Un ami m'a dit que c'était un problème de frame, la fonction est déclarée dans un .html qui est dans une frame et on va appeler cette méthode dans une autre frame, comment qu'on peut faire ça ?

    La frame a un id, il existerait un truc du style "getFrameById" ? J'ai essayé "document.getElementById("idDeLaFrame") mais il ne la trouve pas (ça vaut null).

    Merci pour votre aide

  7. #7
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1

Discussions similaires

  1. [AJAX] appliquer une fonction sur un lien précis
    Par bzakaria dans le forum AJAX
    Réponses: 2
    Dernier message: 30/06/2010, 17h45
  2. Réponses: 6
    Dernier message: 07/10/2009, 18h16
  3. [MySQL] Appliquer une fonction sur un champ lors d'une requête
    Par Jérémy197 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 13/08/2006, 13h29
  4. (newbie)savoir quel bouton a appelé une fonction
    Par tibtibby dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 09/06/2006, 16h50
  5. Peut-on appliquer une fonction sur un champs ajouté?
    Par tinwul dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 31/05/2006, 17h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo