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 :

"Light box maison" et bouton précédent navigateur


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Inscrit en
    Juin 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 9
    Points : 5
    Points
    5
    Par défaut "Light box maison" et bouton précédent navigateur
    Bonjour à tous,

    En général je trouve les solutions à mes problèmes en parcourant le forum mais là je bloque ou je formule mal ma demande...bref ce qui m'amène vers vous c'est le problème suivant :

    -J'utilise une light box dans mon site pour afficher données dynamiques (php+mysql).
    J'ai plusieurs liens qui peuvent ouvrir cette light box et ça crée du coup un historique dans le navigateur (jusque là logique), mais si la light box est ouverte et que j'utilise le bouton précédent du navigateur, alors les pages changent en arrière plan de la box, mais elle reste ouverte.

    C'est finalement assez logique comme comportement mais je souhaite que la light box se ferme si on utilise le bouton précédent du navigateur.

    D'avance merci de m'aider

    Ci-dessous un code simplifié de ma page pour tester ce comportement.

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>Test light box</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <style>
     
    #filter
    {
            position: fixed;
            display: none;
            top: 0%;
            left: 0%;
            width: 100%;
            height: 100%;
            background-color: black;
            z-index:10;
            opacity:0.7;
            filter: alpha(opacity=70);
    }
     
    #box 
    {
            position:fixed;
            display: none;
            top: 50%;
            left: 50%;
            width: 800px;
            height: 580px;
            margin-top: -290px;
            margin-left: -400px;
            z-index:11;
    }
    #contenu
    {
            position:absolute;
            overflow: auto;
            width: 780px;
            height: 530px;
            top: 50%;
            left: 50%;
            margin-top: -265px;
            margin-left: -390px;
            background-color: white;
            text-align:center;
    }
    </style>
     
    <script type="text/javascript">
    function viewHeight() 
    {
        if(window.innerHeight)return(window.innerHeight);
        if(document.documentElement && document.documentElement.clientHeight) 
             return(document.documentElement.clientHeight);
        if(document.body) return(document.body.clientHeight); 
        return 50;
    }
     
    // OUVRIR LA LIGHT BOX
    function openbox()
    {       
      var box = document.getElementById('box');
      var filter = document.getElementById('filter'); 
      
      box.style.display='block';
      filter.style.display='block';
      
        var top =  (viewHeight() - box.offsetHeight ) / 2;    
        box.style.position='fixed';
        filter.style.position='fixed';      
    }       
     
    // FERMER LA LIGHTBOX
    function closebox()
    {
       document.getElementById('box').style.display='none';
       document.getElementById('filter').style.display='none';
    }
     
    </script>
    </head>
     
    <body>
    <div id="filter"></div>
     
    <div id="box">
    			<div id="contenu">
                <a href="#" onclick="closebox()">fermer</a><br /><br />
                TEXTE DE CONTENU DYNAMIQUE + PHOTOS
                </div>
    </div>
    <a href="test.html#1" onclick="openbox();">lien1</a><br />
    <a href="test.html#2" onclick="openbox();">lien2</a><br />
    <a href="test.html#3" onclick="openbox();">lien3</a><br />
    <a href="test.html#4" onclick="openbox();">lien4</a><br />
    <a href="test.html#5" onclick="openbox();">lien5</a><br />
    <a href="test.html#6" onclick="openbox();">lien6</a><br />
    </body>
    </html>

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 082
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 082
    Points : 44 698
    Points
    44 698
    Par défaut
    mets des return false en fin de tes fonctions
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    function openbox() {
      var box = document.getElementById('box');
      var filter = document.getElementById('filter');
      box.style.display = 'block';
      filter.style.display = 'block';
      var top = (viewHeight() - box.offsetHeight) / 2;
      box.style.position = 'fixed';
      filter.style.position = 'fixed';
      return false;
    }
    function closebox(){
      document.getElementById('box').style.display='none';
      document.getElementById('filter').style.display='none';
      return false
    }
    et sur l'appel à ces fonctions tu fais
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <a href="#" onclick="return closebox()">fermer</a>
    <a href="#" onclick="return openbox();">lien1</a>
    cela annulera l'action par défaut et donc tu n'augmenteras pas l'historique

Discussions similaires

  1. Problème JSF bouton précédent navigateur
    Par coupagabana dans le forum JSF
    Réponses: 0
    Dernier message: 16/07/2012, 16h59
  2. Déconnexion et bouton Précédent
    Par sami_c dans le forum Langage
    Réponses: 10
    Dernier message: 14/02/2006, 16h40
  3. en vba bloquer le bouton précédent
    Par Pouyou le caribou dans le forum Access
    Réponses: 5
    Dernier message: 15/06/2005, 19h26

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