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 :

detection de frame, d'utilisateur humain, position haut de page et taille 100%


Sujet :

JavaScript

  1. #1
    Membre éclairé
    Inscrit en
    Décembre 2006
    Messages
    411
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 411
    Par défaut detection de frame, d'utilisateur humain, position haut de page et taille 100%
    Bonjour,

    J'ai plusieurs questions concernant javascript et ses fonctionnalités :
    1 - Peut-on détecter la présence d'une frame ou d'une iframe dans la page d'un site grâce à javascript et si oui comment
    2 - Quels sont les évènements javascript les plus logiques selon vous afin de s'assurer que l'internaute est bien présent derrière l'écran (ex : le clic)
    3 - Comment s'assurer qu'un élément est situé en haut de page ? Par exemple, si j'ai un script qui affiche une bannière, il me faudrait savoir à quel hauteur est positionné cet élément. Par exemple, la bannière que vous avez en haut d'écran DEVELOPPEZ.COM, j'aimerais pouvoir m'assurer que celle-ci est bien en haut de l'écran. Je parle bien de la position dans la page et donc si le visiteur utilise la scroll bar la position elle ne bouge pas elle est toujours en haut dans l'exemple
    4 - Comment faire un div de la taille complète de la page ?
    Cette solution là n'en est pas une en fait on voit ce code partout :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    		if(!document.all && document.getElementById){
           		hauteur = window.innerHeight;
    			largeur = window.innerWidth;
    		}
    		else {
    			hauteur = document.body.clientHeight;
            	largeur = document.body.clientWidth;
    		}
    bizarrement j'ai tenté un truc qui marche c'est çà :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    hauteur = screen.height;
    largeur = screen.width;
    Qu'en pensez vous ?
    Cette solution ne fonctionne pas car lorsque l'on scrolle on constate que le div (que j'ai grisé pour le rendre bien visible) fait la taille de la partie visible de l'écran mais pas du bas de la page
    J'ai fait un div comme çà :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <DIV ID="pub" STYLE="position: absolute;top: 0;left: 0;z-index: 10"></DIV>
    J'ai entendu dire que position:fixed faisait celà mais que celà pouvait provoqué des problèmes

    Merci de vos avis sur ces questions

  2. #2
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Par défaut
    Bonjour , pour reprendre point par point :

    1 - document.getElementsBytagName('iframe').length > 0 alors iframe
    2 - il existe des logiciel simulant la présence humaine , mais le meilleur moyen serait le mousemove ou obligé l'utilisateur a rentrer un code ...
    3 - non la méthode fixed est effectivement la meilleur solution , vas voir dans la section css , le code est donnée pour être compatible multinavigateur
    4 - pourquoi faire une div de la hauteur complète ? une div de la hauteur de l'écran + un overflow simulerais ta page ...

    http://xhtml.developpez.com/faq/?pag...ans_javascript

  3. #3
    Membre éclairé
    Inscrit en
    Décembre 2006
    Messages
    411
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 411
    Par défaut
    Donc pour rendre cross browser je dois mettre celà :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    .fixe { 
      /* un bloc fixe situé en haut qui fait toute la largeur */ 
      position : fixed; 
      top: 0px; 
      left: 0px; 
      right: 0px; 
      width: 100%; 
      /* et le patch pour IE */ 
      position : expression("absolute"); 
      width : expression("100%"); 
      top : expression(document.body.scrollTop + this.offsetHeight - this.offsetHeight); 
      left : expression("0px"); 
    }
    Le problème que j'ai que je dois mettre ce code dans du javascript et celà se complique car j'ai un code javascript qui génère une image en html et je dois y affecter désormais le css ci-dessus
    Pour en revenir à un autre point permettant de savoir si la page sur lequel mon code est collé contient ou non une frame ou iframe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementsBytagName('iframe').length > 0
    Celà ne marchera pas car je ne sais pas le nom de la frame ou iframe je veux détecter si mon script javascript qui est collé sur des autres sites que le mien est affiché ou non dans une page contenant des frames ou des iframes
    Peut-on m'expliquer un peu plus ce point : "une div de la hauteur de l'écran + un overflow simulerais ta page" car çà m'intéresse. Que signifie overflow ? car en fait je veux faire une div de la taille totale de la page donc on ne peut pas cliquer sur un lien de la page ou autre car ma div est devant et celà même si on scrolle la page et que l'on va tout en bas ma div doit encore être affiché car j'ai mis un petit effet grisé pour cacher la page dessous
    Sinon pour l'évènement mousemove, je voudrais que si la souris bouge celà affecte une variable pour enregistrer le mouvement de la souris et ensuite on ne fait plus rien. INUTILE d'éxécuter du code après à chaque mouvement de souris sur la même page car l'objectif est juste de s'assurer qu'il y a bien quelqu'un derrière l'écran

  4. #4
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Par défaut
    Le problème que j'ai que je dois mettre ce code dans du javascript et celà se complique car j'ai un code javascript qui génère une image en html et je dois y affecter désormais le css ci-dessus
    pourquoi devoir mettre ce code css dans du javascript ???


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementsBytagName('iframe').length > 0
    Celà ne marchera pas car je ne sais pas le nom de la frame ou iframe je veux détecter si mon script javascript qui est collé sur des autres sites que le mien est affiché ou non dans une page contenant des frames ou des iframesquelqu'un derrière l'écran
    as tu seulement testé ????

    la propriété overflow permet de masquer ou non la barre de scroll dans une div ou un span si le contenu dépasse de la hauteur ou largeur définit

  5. #5
    Membre éclairé
    Inscrit en
    Décembre 2006
    Messages
    411
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 411
    Par défaut
    Mon code ne fait que générer du javascript qui affichera une div affichant une image sur le site sur lequel il est éxécuté
    ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <script type="text/javascript" src="http://www.avenir-affiliation.fr/testjavascript.php?pseudo=test">
    </script>
    Ce code doit être collé sur des sites qui ne m'appartiennent pas car je suis une régie publicitaire, mon code génère du javascript qui affichera une div qui doit faire la taille totale de l'écran avec un fond grisé et si la page est longue et que l'on scrolle, le grisé doit être jusqu'en bas empêchant ainsi de cliquer sur des liens éventuellement présent sur le site.
    Donc pour résumer il faut que j'affiche une div globale avec fond grisé qui empêche tout accès au site tant que l'on aura pas fermé celle-ci, elle contient une autre div affichant une image et la possibilité d'enlever la div et le fond grisé
    Comment puis-je intégrer donc ce code css à mon code javascript (qui est généré par php) ?
    Si je suis la logique le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementsBytagName('iframe').length > 0
    recherche un tag <iframe> dans la page html et les compte et donc on peut sans doute faire pareil avec les frames non ?

  6. #6
    Membre éclairé
    Inscrit en
    Décembre 2006
    Messages
    411
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 411
    Par défaut
    Personne ne saurait répondre à mon message précédent (ou au moins à une partie de mon message) ?
    Merci d'avance

Discussions similaires

  1. Mettre la scrollBar d'une JScrollPane en position haute
    Par citrowallon dans le forum Composants
    Réponses: 5
    Dernier message: 08/04/2010, 11h40
  2. Obtenir la liste des utilisateurs humains
    Par basile238 dans le forum Windows
    Réponses: 3
    Dernier message: 09/02/2009, 12h43
  3. Position haut de page sur ouverture d'une nouvelle page
    Par jerome38000 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 26/09/2007, 16h02
  4. Réponses: 2
    Dernier message: 10/01/2007, 17h06
  5. [role] Detecter le role des utilisateurs
    Par Dry dans le forum SQL
    Réponses: 5
    Dernier message: 28/04/2004, 17h06

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