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

Contribuez Discussion :

[Ancien]Page Code Source


Sujet :

Contribuez

  1. #61
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 289
    Points
    3 289
    Par défaut
    Nouveau Add-In bien de chez moi : Le select amélioré

    Rien de bien nouveau, si ce n'est la possibilité d'afficher, de masquer, d'ajouter ou de supprimer des options (compatible IE+FF)

    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
    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
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    <html>
        <head>
            <title>Select Adapter</title>
            <script type="text/javascript">
            makeSelect=function(s) {
                if (s.tagName.toLowerCase() != "select") {
                    throw "ArgumentException : 's' isn't a valid Select";
                }
                s.allOptions = new Array();
                var all=s.getElementsByTagName("option");
                for (var i=0; i<all.length; i++) {
                    s.allOptions[i] = all[i].cloneNode(true);
                    s.allOptions[i].display=true;
                    s.allOptions[i].setAttribute("index", i)
                    all[i].setAttribute("index", i)
                }
                s.allOptions.select=s;
                s.allOptions.add=function(text, value) {
                    var index=this.length;
                    var o=document.createElement("option");
                    o.display=true;
                    o.value=value;
                    o.setAttribute("index", index)
                    o.appendChild(document.createTextNode(text));
                    this[index]=o;
                    this.select.refresh();
                    return index;
                }
                s.allOptions.remove=function(index) {
                    this[index]=null; this.select.refresh(); return true;
                }
                s.refresh=function() {
                    /* Conserver la selection IE+FF */
                    /* Bug Connu : IE ne prend pas en charge la multi selection */
                    var all=this.getElementsByTagName("option");
                    for (var i=0; i<this.allOptions.length; i++) {
                        this.allOptions[i].removeAttribute("selected");
                        this.allOptions[i].selected=false;
                    }
                    for (var i=0; i<all.length; i++) {
                        var index=all[i].getAttribute("index");
                        var selected=all[i].selected;
                        if (""+selected+""=="true") {
                            this.allOptions[index].setAttribute("selected","selected");
                        }
                    }
                    /* Refresh, IE+FF */
                    this.innerHTML="";
                    var current=0; var selectedIndex=-1;
                    for (var i=0; i<this.allOptions.length; i++) {
                        var o = this.allOptions[i];
                        if (o && o.display) {
                            var newO=o.cloneNode(true);
                            if (document.all) {
                                if(current && o.selected) {
                                    selectedIndex=current; current=false;
                                }
                                current++;
                            }
                            this.appendChild(newO);
                        }
                    }
                    if (document.all && selectedIndex != -1) {
                        this.selectedIndex=selectedIndex;
                    }
                }
                s.hide=function(index,noRefresh) {
                    var o = this.allOptions[index];
                    if (o) {
                        o.display=false;
                        if (!(noRefresh)) {
                            this.refresh();
                        }
                        return true;
                    } else {
                        return false;
                    }
                }
                s.show=function(index,noRefresh) {
                    var o = this.allOptions[index];
                    if (o) {
                        o.display=true;
                        if (!(noRefresh)) {
                            this.refresh();
                        }
                        return true;
                    } else {
                        return false;
                    }
                }
                s.hideAll=function() {
                    for (var i=0; i<this.allOptions.length; i++) {
                        this.hide(i, true);
                    }
                    this.refresh()
                }
                s.showAll=function() {
                    for (var i=0; i<this.allOptions.length; i++) {
                        this.show(i, true);
                    }
                    this.refresh()
                }
                return s;
            }
            </script>
        </head>
        <body>
            <select>
                <option value="0">0</option>
                <option value="1">1</option>
            </select>
            <script>
            var s = makeSelect(document.getElementsByTagName("select")[0]);
            </script>
            <input type="button" value="Ajouter une option" onclick="s.allOptions.add(s.allOptions.length,s.allOptions.length)" />
        </body>
    </html>
    Fremy
    Pour vos développements Web et une navigation agréable, le tout gratuit :
    1) IE 8 + IE7Pro (Si vous ne connaissez pas IE7Pro, essayez !)
    2) FF 3 + Web Developper Toolbar + AdBlockPlus + FireBug + GreaseMonkey
      0  0

  2. #62
    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 637
    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 637
    Points : 66 659
    Points
    66 659
    Billets dans le blog
    1
    Par défaut Déterminer si un nombre est pair ou impair
    En utilisant l'opérateur modulo (reste de la division)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    function isEven(nombre){
     return !(nombre%2)?true:false ;
    }

    utilisation:

    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 !
      0  0

  3. #63
    Membre éprouvé
    Avatar de Celelibi
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 087
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 087
    Points : 1 122
    Points
    1 122
    Par défaut
    En réponse à SpaceFrog (que j'avais pas reconnu à cause de son changement d'avatar )

    Lorsqu'on a un code du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (cond) {
      return true;
    } else {
      return false;
    }
    (les return pourraient être remplacés par l'assignation d'une même variable)
    On met généralement : qui va renvoyer true ou false si la condition est réalisée ou non.

    Donc finalement isEven serait sûrement un chouilla plus rapide comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function isEven (nombre) {
      return (nombre&1 == 0);
    }
    Les vaches ne peuvent PAS voler, quoi qu'elles aient pu vous raconter.
      0  0

  4. #64
    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 637
    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 637
    Points : 66 659
    Points
    66 659
    Billets dans le blog
    1
    Par défaut
    En réponse à Cel que j'avais reconnu grace à son avatar

    j'ai d'ailleuirs déja donné cette methode dasn la faq ... c'est pour cela que j'ai mis en préablue "avec le modulo"

    et pour faire encore plus rapide ::

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function isEven(nombre){
     return !(nombre&1)
     }
    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 !
      0  0

  5. #65
    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 637
    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 637
    Points : 66 659
    Points
    66 659
    Billets dans le blog
    1
    Par défaut plusieurs instanciations de fonctions
    Voici un exemple qui ne sert à rien ... d'autre que de montre la possibilité d'instanciation de la même focntion plusieurs fois en utilisant des paramètres propres à chaque objet qui déclenche la fonction ...

    Dans ce cas chaque instance de setInterval est attribuée à l'objet lui même par l'intermédiaire de la création d'un attribut (run) et utilise une variable propre à chaque objet (level)...

    le clearInterval est ainsi réalisable sur chaque objet individuellement ...

    [edit]
    Nouvelle version du fichier car le précédent code ne prenait pas en compte toutes les valeurs de l'array ...
    [/edit]
    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 !
      0  0

  6. #66
    Membre du Club
    Administrateur de base de données
    Inscrit en
    Juillet 2006
    Messages
    98
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juillet 2006
    Messages : 98
    Points : 57
    Points
    57
    Par défaut petit code cool pour faire une fenêtre "loading"
    1)Créer votre page principale

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ...
    <body onload="window.splash.endTime();" >
    ....
    2)Dans cette même page créer ce script (de préférence dans le tag head) :

    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
    16
    17
    18
     
    <script type="text/javascript" language="Javascript" >
                    window.splash = window.open("<%=request.getContextPath()%>/gabarits/splash.html","_blank","width=200,height=100,status=no,left=" + ((screen.width - 200)/2) + ",top=" + ((screen.height - 100)/2));
                    window.splash.timer=setInterval(function() {
                    // fonction qui ajoute un "." au contenu d'une DIV ou similaire
                    window.splash.addTime()
                    }, 1000)
                    // Fonction invokée après endTime pour fermer la fenêtre
                    window.splash.beginClose=function() {
                    clearInterval(this.timer);
                    setTimeout(this.close(), 1000);}    
                    window.splash.endTime = function()
                    {
                        // Obligatoire :
                        clearInterval(this.timer);
                        setTimeout("window.splash.close();", 1000)
                    }
                </script>
    Dans le window.open ajuster le premier argument pour le path de votre "popup"

    3)Créer le popup

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>    
        <title>splash</title>
        <script language="javascript" type="text/javascript" src="../scripts/bar.js">
            /***********************************************
            * WinXP Progress Bar- By Brian Gosselin- http://www.scriptasylum.com/
            * Script featured on Dynamic Drive- http://www.dynamicdrive.com
            * Please keep this notice intact
            ***********************************************/
            </script>
      </head>
      <body>
        <center><img align="middle" src="../images/logo_niv1.gif" alt="logo" style="padding-right:100px;"/>
        <script type="text/javascript">
        var bar1= createBar(125,15,'white',1,'black','blue',85,7,3,"");
     
        </script></center>
        </body>
    </html>
    <script language="javascript" type="text/javascript">
    window.addTime = function ()
    {
        // Obligatoire :
        this.focus();
    }
    </script>
    mettez vous une image qui vous plaira ou bien du texte dans le body

    bar.js est fournit en pièce jointe

    Ça devrait marcher avec tout ça...Le popup s'ouvre quand la page ouvre et se ferme quand elle a fini de loader..

    Ce qui serait intéressant c'est de faire afficher le popup quand la page se ferme jusqu'à ce que la suivante est fini de loader...
    J'y travail
    A+
    Fichiers attachés Fichiers attachés
    • Type de fichier : js bar.js (2,6 Ko, 902 affichages)
      0  0

  7. #67
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 289
    Points
    3 289
    Par défaut
    Et ben voila, à défaut d'avoir pu me montrer le résultat sur ton serveur, je l'ai ici

    Juste que maintenant que je vois le script terminé, je me dis que c'est un peu dommage que je n'ai pas pensé à te passer mon script de ProgressBar
    Ca t'aurait évité de chercher
    Lol, je vais tout de même regarder le script, histoire d'améliorer le mien (lol, je suis comme ca, je pique les idées des autres )

    Sinon, pour l'idée de la fenêtre qui s'ouvre sur le onunload et se ferme sur le onload de la page précédente.. ca me semble difficile... mais bon, j'ai peut-être pas pensé à tout
    Fremy
    Pour vos développements Web et une navigation agréable, le tout gratuit :
    1) IE 8 + IE7Pro (Si vous ne connaissez pas IE7Pro, essayez !)
    2) FF 3 + Web Developper Toolbar + AdBlockPlus + FireBug + GreaseMonkey
      0  0

  8. #68
    Membre du Club
    Administrateur de base de données
    Inscrit en
    Juillet 2006
    Messages
    98
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juillet 2006
    Messages : 98
    Points : 57
    Points
    57
    Par défaut
    j'aurais bien aimé te le montrer mais je travail sur un intranet et en développement en plus...Et c'est pas moi qui gère les serveurs car je travail dans une grosse compagnie d'assurance...

    mais la progress bar que j'ai est vraiment nice tu peux la paramètré comme tu veux!

    Entk je te laisse j'ai du code à faire
      0  0

  9. #69
    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 637
    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 637
    Points : 66 659
    Points
    66 659
    Billets dans le blog
    1
    Par défaut
    Beaucoup d'efforts pour pas grand chose si le bloqueur de popup est activé ...
    Ne vaudrait itl pas mieux le modifier pour faire gérer le display d'un di au lieu d'un popup ?
    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 !
      0  0

  10. #70
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 289
    Points
    3 289
    Par défaut
    Citation Envoyé par SpaceFrog
    Beaucoup d'efforts pour pas grand chose si le bloqueur de popup est activé ...
    Ne vaudrait itl pas mieux le modifier pour faire gérer le display d'un di au lieu d'un popup ?
    En effet, je n'y avais pas pensé... Ben de toute facon, ca prend pas tant de ligne de code que ca
    Fremy
    Pour vos développements Web et une navigation agréable, le tout gratuit :
    1) IE 8 + IE7Pro (Si vous ne connaissez pas IE7Pro, essayez !)
    2) FF 3 + Web Developper Toolbar + AdBlockPlus + FireBug + GreaseMonkey
      0  0

  11. #71
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 648
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 648
    Points : 11 137
    Points
    11 137
    Par défaut Une info-bulle
    Je vois régulièrement des questions sur ce sujet donc voici un petit script d'une info bulle :

    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
    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
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
     
    <html>
    <head>
    <title></title>
    <style type="text/css">
    <!--
    .clBulle{
    width: 160px;
    display: none;
    position: absolute;
    z-index : 1;
    background-color: #F4F49C;
    padding: 2px;
    margin: 2px;
    border-style: ridge;
    border-width: 3px;
    border-color: #F4F49C;
    font-family: Arial;
    font-size: 8pt;
    }
     
    .mesDiv{
    background-color: #B3C2A1;
    padding: 10px;
    }
    .monStyle1{
    width: 150%;
    height: 60px;
    }
    .monStyle2{
    width: 220px;
    }
     
    //-->
    </style>
     
    <script type="text/javascript">
    <!--
    function MouseOver(ev)
    {
      var Xdoc, Xfen, Ydoc, Yfen, htDiv, lgDiv, dX, dY;
      var Ybulle;
      var el=document.getElementById("Bulle");
     
      //on affiche la boite de dialogue pour evaluer ses dimensions.
      if (el.style.display!="inline")
          el.style.display="inline";
     
      //hauteur et largeur de la bulle
      htDiv = el.offsetHeight;
      lgDiv = el.offsetWidth;
     
      //delta de la bulle sous la souris
      dY=10;
      dX=10;
     
      //position de la souris :
      Xfen = ev.clientX;
      Xdoc = Xfen + document.body.scrollLeft;
     
      Yfen = ev.clientY;
      Ydoc = Yfen + document.body.scrollTop;
     
      //position de la bulle dans la page :
      if ((Xfen + lgDiv + dX) > document.body.clientWidth)
        el.style.left = document.body.clientWidth + document.body.scrollLeft - lgDiv;
      else
        el.style.left = Xdoc + dX;
     
      if ((Yfen + htDiv + dY) > document.body.clientHeight)
      {
         Ybulle = document.body.clientHeight + document.body.scrollTop - htDiv-5;
         if (parseInt(Ybulle)>parseInt(Ydoc))
         {
           el.style.top = Ybulle;
         }
         else
         {
           el.style.top = Ydoc - htDiv-dY;
         }
      }
      else
      {
         el.style.top = Ydoc + dY-5;
      }
     
      //contenu de la bulle :
      el.innerHTML = " Xdoc= "+Xdoc+" px ; Ydoc= "+Ydoc+" px<br>";
      el.innerHTML+= " Xfen= "+Xfen+" px ; Yfen= "+Yfen+" px";
     
    }
     
    function MouseOut()
    {
     //on cache la bulle
     document.getElementById("Bulle").style.display = "none";
    }
    //-->
    </script>
     
    </head>
     
    <body>
    <div class="clBulle" id="Bulle">Mon info-bulle</div>
     
    <div class="mesDiv monStyle1" onmousemove="MouseOver(event)" onmouseout="MouseOut()">
    ici l&rsquo;info bulle se d&eacute;place avec la souris lorsque vous survolez ce
    paragraphe... <br>
    Déplacer l&rsquo;ascenseur horizontal et repositionnez la souris sur le paragraphe.
    Lisez Xdoc et Xfen.... ;-)
    </div>
     
    <br><br><br>
     
    <div class="mesDiv monStyle2" onmouseover="MouseOver(event)" onmouseout="MouseOut()">
    par contre ici, l&rsquo;info-bulle appara&icirc;t et reste fixe jusqu&rsquo;&agrave; ce que vous
    sortiez du paragraphe.
    </div>
     
    <br><br><br><br><br><br><br><br>
    <!--
    <br><br><br><br>
    <br><br><br><br><br><br><br><br><br><br><br><br>
    <br><br><br><br><br><br><br><br><br><br><br><br>
    <br><br><br><br><br><br><br><br><br><br><br><br>
    -->
    <div class="mesDiv monStyle1" onmousemove="MouseOver(event)" onmouseout="MouseOut()">
    ici l&rsquo;info bulle se d&eacute;place avec la souris lorsque vous survolez ce
    paragraphe... <br>
    Déplacer l&rsquo;ascenseur horizontal et repositionnez la souris sur le paragraphe.
    Lisez Xdoc et Xfen.... ;-)
    </div>
     
    </body>
     
    </html>
    ce code fonctionne très bien avec Firefox et IE5.
    Deux possibilités : la bulle suit la souris, ou la bulle reste fixe (cf. exemples).
    Il gère les cas où la souris se trouve à droite de la page, ainsi que le cas où la souris se trouve en bas à droite de la page.

    Merci de le tester avec d'autres navigateurs et de m'indiquer les corrections à faire le cas échéant.
      0  0

  12. #72
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    création d'éléments DOM en série

    Certains scripts obligent à une utilisation intensive des méthodes
    appendChild(), document.createElement() et document.createTextNode();

    pour tous les cas où vous créez une balise bloc et son contenu, utilisez la fonction crobj() :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function crobj(p,e,d){// parent, élement, texte
    	p.appendChild(document.createElement(e)).appendChild(document.createTextNode(d));
    }
     
    // exemple
    crobj(document.body,"p","nouveau paragraphe")
    le seul objectif est de réduire considérablement le nombre d'instructions / variables / lignes dans vos codes, mais c'est quand même important
      0  0

  13. #73
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    récupération du contenu et de la longueur d'un tableau contenant des indices littéraux

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    <script type="text/javascript">
     
    var tab = new Array();
     
    tab["un"] = "valeur de un";
    tab["un"] = "valeur de un"; // définition doublée volontairement
    tab["deux"] = "valeur de deux";
    tab["deux"] = "valeur de trois"; // redéfinition volontaire
    tab[44] = "valeur de 44"; // indice numérique
     
     
     
    function tabinfo(){
    	var lg=0;
    	var lignes="";
     
    	for (ind in this){
    		if(this.hasOwnProperty(ind)){	
    			// seules les propriétés uniques 
    			// et non héritées seront retenues
    			lg++;
    			lignes+='cle: ' + ind + ' ==> valeur: ' + this[ ind] + "\n";
    		}
    	}
     
    	return  "ce tableau contient " + lg + " lignes:\n\n" + lignes;
    }
     
    Array.prototype.info=tabinfo;
     
     
    alert( tab.info())
     
    </script>
      0  0

  14. #74
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 648
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 648
    Points : 11 137
    Points
    11 137
    Par défaut
    Dialogue entre deux fenêtres parentes (1) :
    Fenêtre "fille" ouverte par window.open()

    Les données sont émises et reçues via deux input. Le code n'est pas parfait dans la mesure où aucun test ne vérifie si la fenêtre mère ou la fenêtre fille est ouverte.

    Mere.htm
    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
    16
    17
    18
     
    <html>
    <head>
    <title></title>
     
    <script type="text/javascript" src="MereFille.js"></script>
     
    </head>
     
    <body onload="OuvreFenetreFille()">
    <input type="text" id="inMere" size="20" maxlength="10">
    <input type="button" value=">fenêtre fille" onclick="TransfertMereFille()">
     
    <br><br>
    <input type="text" readonly="readonly" id="outFille" size="20" maxlength="10">
    </body>
     
    </html>
    Fille.htm
    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
     
    <html>
    <head>
    <title></title>
    <script type="text/javascript" src="MereFille.js"></script>
    </head>
     
    <body>
    <input type="text" id="inFille" size="20" maxlength="10">
    <input type="button" value=">fenêtre mère" onclick="TransfertFilleMere()">
     
    <input type="text" readonly="readonly" id="outMere" size="20" maxlength="10">
    </body>
     
    </html>
    MereFille.js
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    var fenFille;
    function OuvreFenetreFille()
    {
     fenFille = window.open("Fille.htm","","height=100,width=300,toolbar=yes,menubar=yes,status=yes");
     //window.location.href="Fille.htm"
    }
     
    function TransfertMereFille()
    {
      var elmtWinParent=document.getElementById("inMere");
      var elmtWinFille=fenFille.document.getElementById("outMere");
     
      elmtWinFille.value = elmtWinParent.value;
    }
     
     
    function TransfertFilleMere()
    {
     var elmtWinParent=window.opener.document.getElementById("outFille");
     var elmtWinFille=document.getElementById("inFille");
     
     elmtWinParent.value=elmtWinFille.value;
    }
      0  0

  15. #75
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 648
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 648
    Points : 11 137
    Points
    11 137
    Par défaut
    Dialogue entre deux fenêtres parentes (2) :
    Fenêtre "fille" ouverte par showModelessDialog()

    Les données sont émises et reçues via un textarera. Le code n'est pas parfait dans la mesure où aucun test ne vérifie si la fenêtre mère ou la fenêtre fille est ouverte.

    dialogMere.htm
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    <html>
    <head>
    <title></title>
     
    <script type="text/javascript">
    <!--
    var fen=null;
    function fenetre()
    {
      fen = window.showModelessDialog("dialogFille.htm",this,"dialogHeight:150px;dialogWidth:450px");
     
    }
    function transfert()
    {
     if (fen!=null)
         fen.document.getElementById("idFille").value = document.getElementById("idMere").value;
    }
    //-->
    </script>
     
    </head>
     
    <body>
    <input type="button" value="Ouvrir Fille" id="BNom" onclick="fenetre()">
    <br><br><br><br><br>
    <textarea rows="2" cols="20" id="idMere">
    </textarea>
    <input type="button" value="Mere > Fille" id="BNom" onclick="transfert()">
     
     
    </body>
     
    </html>
    dialogFille.htm
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    <html>
    <head>
    <title></title>
     
    <script type="text/javascript">
    <!--
    function envoi()
    {
     
     var parent = self.dialogArguments;
     parent.document.getElementById("idMere").value = document.getElementById("idFille").value;
    }
     
    //-->
    </script>
     
    </head>
     
    <body style="padding: 20px;">
    <textarea rows="2" cols="20" id="idFille" name="nom">bla bla
    </textarea>
    <input type="button" value="Fille > Mere" id="BNom" onclick="envoi()">
     
    </body>
     
    </html>
      0  0

  16. #76
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    442
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 442
    Points : 475
    Points
    475
    Par défaut Javascript Life Game
    Jeu de la Vie en Javascript (pour Internet Explorer)

    Sous le nom de "Jeu de la Vie" on désigne un jeu inventé par le mathématicen John Horton Conway au début des années 70. Le jeu de la vie se présente sous la forme d'un tableau dont chaque case peut contenir ou non une cellule. Tout se passe ainsi : à chaque génération, l'état de chaque case à la génération suivante est décidé en fonction de son état et du nombre de cellules qui l'entourent :
    - Une cellule vivante ne survivra que si elle a 2 ou 3 voisines précisement (elle ne doit être ni isolée ni étouffée).
    - Une cellule apparait dans une case vide à la génération suivante, si et seulement si cette case est entourée de précisement 3 cellules (car il faut de la vie pour engendrer la vie).

    En résumé : 2 ou 3 voisines pour survivre, 3 pour naître.

    (Présentation extraite de ce site)

    -----

    - Cette version propose une grille de 50*30 cases
    - Les couleurs sont paramétrables
    - Des structures (patterns) sont également proposées (2 types de randoms pour l'instant)

    -----

    Si vous aimez ce jeu et que vous aimez aussi le javascript, n'hésitez pas à améliorer mon code pour optimiser l'algorithme (c'est assez lent quand la grille est remplie) ou proposer d'autres "patterns"

    Si vous êtes allergique à IE, vous pouvez également essayer de l'adapter pour Firefox... (Edit: En fait ça marche sous FF sauf les clics pour ajouter/retirer des cellules)

    -----

    Plus d'infos:
    - Infos générales
    - Structures remarquables

    -----

    Capture d'écran:


    -----

    Un fichier unique en pièce jointe qui regroupe Javascript, CSS et HTML
    Fichiers attachés Fichiers attachés
      0  0

  17. #77
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    J'utilise une methode différente pour recuperer des données sur le serveur sans recharger ma page.

    Voici le fichier index.php3
    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
    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
     
    <?
    session_start();
    if (!isset($_SESSION['fois'])): $_SESSION['fois']=0; endif;
    $_SESSION['fois']++;
    print "Page affich&eacute;e : $_SESSION[fois] fois.";
    ?>
    <html>
    <!-- Date de création: 16/09/2006 -->
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title></title>
    <script type="text/javascript" src="javascript.js"></script>
    </head>
    <body>
     
    <form action="villes.php3" method="post" target="envdonne">
    <table>
    <tr>
    <td>
    Code Postal :
    </td>
    <td>
    <select name="CP" onchange="this.form.submit();">
        <option value="" selected> </option>
        <option value="13127"> 13127</option>
        <option value="13700"> 13700</option>
        <option value="13500"> 13500</option>
    </select>
    </td>
    </tr>
    <tr>
    <td align="right">
    Ville :
    </td>
    <td id="ici">
    <input type="text" name="ville" size="20" maxlength="256" value="Aucune ville">
    </td>
    </form>
    </tr>
    </table>
    <br><br>
    Rechargez la page en cliquant <a href="index.php3">ici<a>.
     
    <script>
     
    </script>
     
    </body>
    </html>
    <iframe style="visibility: hidden; position: absolute" name="envdonne"></iframe>
    Voici le fichier javascript.js

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    function affichercode(code){
    //document.write(test);
    var ns4 = (document.layers)? true:false; /* Nescape 4 */
    var ie4 = (document.all && !window.opera)? true:false; /* Internet Eplorer 4 */
    var dom = (document.getElementById)? true:false; /* Nescape 6 ou Internet Eplorer 6 */
    if (dom){document.getElementById("ici").innerHTML = code; return;}
    if (ie4){document.all["ici"].innerHTML = code; return;}
    if (ns4){ with (eval('document.'+"ici"+'.document')){open(); write(code); close();} return;}}
    et Voici le fichier villes.php3

    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
    16
     
    <?
    if ($_POST['CP']=="13127"):
    $ville="Vitrolles";
    elseif ($_POST['CP']=="13700"):
    $ville="Marignane";
    elseif ($_POST['CP']=="13500"):
    $ville="Martigues";
    else:
    $ville="Aucune ville";
    endif;
     
    print "<script>";
    print "parent.affichercode('<input type=\"text\" name=\"ville\" size=\"20\" maxlength=\"34\" value=\"$ville\">');";
    print "</script>";
    ?>
    Voila !

    Bien sûre, c'est optimisable à souhait !!!

    Bon je sais pas ce que ça vaut, mais moi ça me convient bien mieux que AJAX.

    Pour les pressés, voici le zip : Donneeserveur.zip
      0  0

  18. #78
    Membre éprouvé Avatar de alain31tl
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 935
    Points : 1 019
    Points
    1 019
    Par défaut
    Et tu vas créer un fichier de conditions avec 27000 villes ou plus ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    if ($_POST['CP']=="13127"):
    $ville="Vitrolles";
    elseif ($_POST['CP']=="13700"):
    $ville="Marignane";
    elseif ($_POST['CP']=="13500"):
    $ville="Martigues";
    // et ainsi de suite ?
    Ce n'est pas parce que les choses sont difficiles qu'on n'ose pas les entreprendre.
    C'est parce qu'on n'ose pas les entreprendre qu'elles sont difficiles.
      0  0

  19. #79
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Non allez serieusement !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    if ($_POST[CP]):
    	$resville=mysql_query("SELECT * FROM villes WHERE CP='$_POST[CP]' ");
    	if ($resville):
    		$nbville=mysql_num_rows($resville);
    		if ($nbville>0):
    			$lignville=mysql_fetch_array($resville);
    			$ville=$lignville[VILLE];
    		endif;
    	endif;
    endif;
    Par exemple !!!
      0  0

  20. #80
    Membre expert
    Avatar de Bestiol
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 515
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 515
    Points : 3 894
    Points
    3 894
    Par défaut
    Voici un petit objet Console pour logger des informations pendant l'exécution d'un script. Le style CSS est personnalisable pour pouvoir, au besoin, l'intégrer au design d'un site.

    Titre : Objet Console

    Auteur : Olivier Lance

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    //Constructeur de l'objet
    function Console(id, classLigne)
    {
        //Conteneur des lignes du log
        this.log = document.getElementById(id);
        //Classe appliquée aux lignes du log
        this.classLn = classLigne;
    }
     
    //Fonction affichant une nouvelle ligne dans le log
    Console.prototype.debug = function (texte) 
    {
        //Création de la ligne
        var p = document.createElement("p");
     
        //Application de la classe
        p.className = this.classLn;
     
        //Ajout du texte
        p.appendChild(document.createTextNode("> " + texte));
     
        //Ajout de la ligne dans le log
        this.log.appendChild(p);
    }
     
    //Effacement du log
    Console.prototype.effacer = function ()
    {
        this.log.innerHTML = "";
    }
    L'utilisation est simple :

    Création de la console en passant l'id du bloc qui contiendra les lignes du log et la classe CSS assignée à ces lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var console = new Console("console", "ligne-console");
    Ajout d'une ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    console.debug("Ma ligne de log");
    Effacement du log :
    Mea est trop forte, elle flotte : mea coule pas !

    Basically this boot sector (Win95) code is 32 bit extension for a 16 bit patch to an 8 bit boot sector originally coded for a 4 bit microprocessor, written by a 2 bit company, that can't stand 1 bit of competition.

    olance.developpez.com
    Servez-vous, profitez, abusez de la FAQ Delphi !!
      0  0

Discussions similaires

  1. Page Code Source, mettez vos codes ici
    Par Bovino dans le forum Contribuez
    Réponses: 8
    Dernier message: 05/12/2008, 12h11

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