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 :

Tester focus sur un objet


Sujet :

JavaScript

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    818
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Points : 288
    Points
    288
    Par défaut Tester focus sur un objet
    Bonjour,

    Je souhaite faire un test sur le focus...
    Voici ce que j'ai fait mais qui ne marche pas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    if(document.getElementById('boxContent1').focus)
    {
     doCommand('insertImage');
    }
    else
    {
     alert('Il faut etre dans un div');
    }
    Comment faire pour que ma fonction s'execute si le focus est dans l'element boxContent1 et affiche la fenetre alert dans tous les autres cas?
    Merci d'avance

  2. #2
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Hum deja les element DIV n'ont pas de propriété focus :S
    Par pitié !!!! :Si vous ne savez pas faire cliquez ici !
    Citation Envoyé par Marc-L
    C'est dommage que parfois tu sois aussi lourd que tu as l'air intelligent…

  3. #3
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    818
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Points : 288
    Points
    288
    Par défaut
    J'ai essayé avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    focus() et focus()==true
    Et ca ne marche pas...

    Comment faire?
    Y a t'il une autre méthode?

  5. #5
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Hum en javascript la methode focus() set a donné le focus mais elle ne renvoi rien
    Par pitié !!!! :Si vous ne savez pas faire cliquez ici !
    Citation Envoyé par Marc-L
    C'est dommage que parfois tu sois aussi lourd que tu as l'air intelligent…

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    818
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Points : 288
    Points
    288
    Par défaut
    Oui j'ai compris, mais n'existe t'il pas une fonction permettant de tester si le focus est dans un element?

    Du genre isfocus() ou je ne sais pas, si une telle fonction n'existe pas comment puis je la faire? A partir de quelles autres fonctions?

  7. #7
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    Ca n'existe pas en Javascript ..

    Ce que tu peux faire, tu déclares une variable globale à false, et si jamais ton élément a eu le focus tu la bascules à true et quand il le perd tu la remets à false.

    Tu n'as plus qu'à tester si ta variable est à true.

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    818
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Points : 288
    Points
    288
    Par défaut
    Oui mais comment detecter que mon div a le focus et comment detecter qu'il le perd?

  9. #9
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Moi je ferais un truc du style tu regarde la position de ton DIV, et tu compare avec la position du curseur...
    C'est le seul moyen que je voit pour faire vraiment ce que tu veut
    Par pitié !!!! :Si vous ne savez pas faire cliquez ici !
    Citation Envoyé par Marc-L
    C'est dommage que parfois tu sois aussi lourd que tu as l'air intelligent…

  10. #10
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    Citation Envoyé par calitom
    Oui mais comment detecter que mon div a le focus et comment detecter qu'il le perd?
    C'est pas clair ton histoire. Tu appelles quoi "avoir le focus pour un div" ?
    Les éléments qui peuvent avoir un focus sont ceux que tu peux clairement voir quand tu navigues avec la touche tab. Or un div n'est pas "focusable".

    Alors explique-nous, à quel moment peux-tu dire qu'un div a le focus (textuellement parlant, pas informatiquement) ?

  11. #11
    Membre actif
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    818
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Points : 288
    Points
    288
    Par défaut
    En gros, j'ai un (ou plusieurs) div editable(s) dont l'id est (ou sont) boxContent1 (boxContent2 boxContent3...)

    Tous ces div sont draggables car contenu dans un autre div draggable...
    Et tous ces div draggables sont contenus dans un div général.
    Au dessus, j'ai des barres d'outil permettant d'editer le texte de mes div boxContent, d'y ajouter des images...

    Le truc c'est que je souhaite pouvoir ajouter du contenu(images, liens...) uniquement dans les div boxContent.
    D'ou la nécessité de détecter que le focus est dans le div éditable...

    Car si on est pas dans un div éditable, pour le moment, la fonction doCommand('insertimage') insert une image hors de mes div et je souhaite rendre ca impossible...

    Est ce que j'ai été clair?

  12. #12
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Oui parfaitement, a ce moment la tu faire un truc avec l'evenement onclickdes DIV, quand tu clique dans un DIV tu recupere le nom, ou l'id ou ce que tu veut et tu le traite apres
    Par pitié !!!! :Si vous ne savez pas faire cliquez ici !
    Citation Envoyé par Marc-L
    C'est dommage que parfois tu sois aussi lourd que tu as l'air intelligent…

  13. #13
    Membre actif
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    818
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Points : 288
    Points
    288
    Par défaut
    Et si l'utilisateur clique plusieurs fois sur le div ca pose probleme!
    C'est pour ca que je dois absolument etre sur qu'il a le focus dans un div editable

  14. #14
    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 672
    Points
    66 672
    Billets dans le blog
    1
    Par défaut
    y'a au moins 5 ans j'ai mis un code pour choper le focus ...

    colle une variable globale sur la page et ajoute une fonction à tous les objets dont tu veux verifier le focus ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var gotfocus;
     
    // puis dasn les balises des objets à surveiller :
    onfocus='gotfocus=this'
    en suite pour savoir si ton objet à le focus

    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  15. #15
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Pourquoi ca pose probleme, tu peut tres bien utiliser le nom et l'id et mettre un repere qui te permet de savoir si la DIV est editable ou pas...
    De toute facon tu n'as pas de fonction toute faite, donc si tu cherche la simplicité ce n'est pas possible

    Edit: Oui mais SpaceFrog, les div n'ont pas l'attrubit onfocus :S
    Par pitié !!!! :Si vous ne savez pas faire cliquez ici !
    Citation Envoyé par Marc-L
    C'est dommage que parfois tu sois aussi lourd que tu as l'air intelligent…

  16. #16
    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 672
    Points
    66 672
    Billets dans le blog
    1
    Par défaut
    exact... suffit de passer par le onkeydown, onmouseover ou autre ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  17. #17
    Membre actif
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    818
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Points : 288
    Points
    288
    Par défaut
    Le div est tous le temps editable, le fait de recuperer le nom du div ne m'apporte rien...

    Le div peut exister, et le focus peut quand meme etre hors du div, si le client ajoute le div et qu'il clique a coté du div, le div perd son focus, et s'il fait un test sur le nom ou l'id du div, il trouvera bien quelque chose, mais il ne pourra pas dire si oui ou non il a le focus...

  18. #18
    Membre actif
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    818
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Points : 288
    Points
    288
    Par défaut
    Oui mais il me faudrait un onfocus, mais je ne crois pas que ca existe

  19. #19
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    On la dit je ne sait combien de fois :S pas de onfocus sur une DIV tu est obligé de passé par un stratagème tordu
    Par pitié !!!! :Si vous ne savez pas faire cliquez ici !
    Citation Envoyé par Marc-L
    C'est dommage que parfois tu sois aussi lourd que tu as l'air intelligent…

  20. #20
    Membre actif
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    818
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Points : 288
    Points
    288
    Par défaut
    J'ai testé le onfocus, et ca marche...
    Donc j'arrive a faire une action lorsque le focus arrive dans mon div editable...

    Maintenant il me faudrait un truc du genre onfocusout !!
    Une idée?

Discussions similaires

  1. tester le focus sur un select
    Par kosram dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 10/04/2012, 09h21
  2. [1.x] Comment tester l'existence d'une méthode sur un objet
    Par jekif dans le forum Symfony
    Réponses: 0
    Dernier message: 02/11/2011, 10h48
  3. tester focus sur un div
    Par calitom dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 13/09/2007, 16h39
  4. Callback sur le focus d'un objet graphique
    Par Maickeul dans le forum Interfaces Graphiques
    Réponses: 4
    Dernier message: 20/07/2007, 16h00
  5. [débutant] tester un pointeur sur un objet
    Par hogan dans le forum C++
    Réponses: 26
    Dernier message: 30/03/2007, 10h02

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