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 :

Faire en sorte que tous liens s'ouvrent de la même manière


Sujet :

JavaScript

  1. #21
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 35
    Points : 8
    Points
    8
    Par défaut
    ça ne marche pas.. mais c'est sans doute pas bien codé ?

    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
    <script>
    function initlinks(){
     tablinks=document.getElementsByTagName('a');
    i=0;
    var reg=/pop/
    while(tablinks[i]){
              if (reg.test(tablinks[i])){
                               tablinks[i].onclick=function(){
                                                                      window.open(this.href);
              return false;};
               }
                i++;}
    		  if (tablinks[i].className=='pop'){
                               tablinks[i].onclick=function(){
                                                                      window.open(this.href,'toolbar=1,menubar=0,location=0,scrollbars=1,resizable=yes,width=600,height=500,left=500,top=30');
              return false;};
               }
                i++;}
     
    }
    </script>

  2. #22
    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 642
    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 642
    Points : 66 668
    Points
    66 668
    Billets dans le blog
    1
    Par défaut
    en effet
    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>
    function initlinks(){
     tablinks=document.getElementsByTagName('a');
    params='toolbar=1,menubar=0,location=0,scrollbars=1,resizable=yes,width=600,height=500,left=500,top=30'
     
    i=0;
    var reg=/pop/
    while(tablinks[i]){
              if (reg.test(tablinks[i])){
                               tablinks[i].onclick=function(){
                                                                      window.open(this.href,,params);
              return false;};
               }
                i++;}
     
    }
    </script>
    le test
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       if (reg.test(tablinks[i])){
    vérifie si le class comporte le mot pop. Pas besoin d'autre chose. Ainsi si il ya pop dans le class il attribue le window.open, si il n'y a pas pop il ne fait rien et les liens ne sont pas modifiés ...

  3. #23
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 35
    Points : 8
    Points
    8
    Par défaut
    Salut Spacefrog,

    je pense que tu vas t'arracher les cheveux avec ma réponse...

    J'ai bien copié-collé le code indiqué dans le <head>.
    Ensuite, pour les liens que je souhaite voir s'ouvrir en popup paramétrée, j'ai appliqué la en laissant un espace entre "up" et "pop" car ces liens comportent déjà une class CSS.

    Malheureusement ces liens s'ouvrent désormais en self.

    Je ne sais plus quoi faire...
    Si tu repasses par là, veux-tu essayer de voir ce qui cloche ?
    D'avance merci à toi

  4. #24
    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 642
    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 642
    Points : 66 668
    Points
    66 668
    Billets dans le blog
    1
    Par défaut
    mea culpa une erreur dans mon code...
    il faut tester le className ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      if (reg.test(tablinks[i].className)){

  5. #25
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 35
    Points : 8
    Points
    8
    Par défaut
    Spacefrog,
    ça ne fonctionne toujours pas.... Je n'ai touché à rien si ce n'est remplacer la ligne indiquée dans ton dernier message.

    ...

    Merci

  6. #26
    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 642
    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 642
    Points : 66 668
    Points
    66 668
    Billets dans le blog
    1
    Par défaut

    Voici un code entier fonctionnel
    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>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <title>Nouvelle page 1</title>
    <script>
    function initlinks(){
    tablinks=document.getElementsByTagName('a');
    params='toolbar=1,menubar=0,location=0,scrollbars=1,resizable=yes,width=600,height=500,left=500,top=30'
    i=0;
    var reg=/pop/g;
    while(tablinks[i]){
              if (reg.test(tablinks[i].className)){
                               tablinks[i].onclick=function(){window.open(this.href,'',params);
              															return false;}
               }
                i++;}
     
    }
    </script>
    <style type='text/css' >
    .rouge {color:red;}
    .vert{color:green;}
    </style>
     
     </head>
    <body onload="initlinks()">
    <a href="about:blank" class="rouge pop">dsfdsf</a>
    <a href="mailto:truc@machinchose.fr" >dsfdsf</a>
    <a href="about:blank" class="pop vert">dsfdsf</a>
    <a href="mailto:truc@machinchose.fr" >dsfdsf</a>
    <a href="about:blank" class="rouge">dsfdsf</a>
     
     </body>
     </html>

    Seul lein lienas ayant le mot pop dasn le class sotn modifiés poru s'ouvrir en popup .

    Essaye de comprendre le focntionnement c'est pourtant pas bein compliqué ...
    le test avec expression régulière teste le contenu des classNames des balises a.
    Si il y trouve le mot pop il rajoute un onclick dans la balise a pour faire un window.open.
    Si le mot pop n'y est pas les liens s'ouvriront dans la fenetre actuelle ou declencheront le gestionnaire de messagerie pour les mailto

  7. #27
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 35
    Points : 8
    Points
    8
    Par défaut
    ok merci Spacefrog,

    j'ai repris tous mes éléments dans le bon ordre et ça fonctionne (c'est la grande "class" !) !
    Sauf quelques satanés liens qui résistent et continuent à s'ouvrir en self on ne sait pourquoi, alors que je leur applique le paramètre popup...

    Une dernière question ; y aurait-il un moyen (je suppose que ce sera en js) pour que la page ne remonte pas dès qu'on ouvre un lien en pop up ? Car on perd le fil et il faut à nouveau scroller pour reprendre la lecture...

    Aurais-tu une suggestion ?

  8. #28
    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 642
    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 642
    Points : 66 668
    Points
    66 668
    Billets dans le blog
    1
    Par défaut
    a priori le return false est là pour inhiber le href des liens, le fait de cliquer sur un lien ne devrait en aucun cas influer sur le scroll ...

    Pour ce qui est des liens récalcitrants il faudrait voir le code intégral

  9. #29
    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 642
    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 642
    Points : 66 668
    Points
    66 668
    Billets dans le blog
    1
    Par défaut
    Arf je viesn de me rappeler ...
    je me fais avoir à chaque fois la fameuse histoire du pointeur de regExp ...
    Il faut reinitlaliser le pointeur de la regExp en faisant un test à vide ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    while(tablinks[i]){
              if (reg.test(tablinks[i].className)){
                               tablinks[i].onclick=function(){
                                                                      window.open(this.href,'www',params);
              return false;};
               }
               reg.test('');
                i++;}

  10. #30
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 35
    Points : 8
    Points
    8
    Par défaut
    Spacefrog :

    BRAVO et MERCI ENCORE !!!!!!!!!!!!!!

    Je mets "Résolu"

    Au plaisir d'un prochain casse-tête

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Réponses: 1
    Dernier message: 10/10/2008, 16h23
  2. [Débutant] Faire en sorte que le nom commence par majuscule
    Par Monkey_D.Luffy dans le forum MS SQL Server
    Réponses: 11
    Dernier message: 29/05/2008, 16h51
  3. Comment faire en sorte que le prog se fasse répéter
    Par LeonHONORE dans le forum Pascal
    Réponses: 3
    Dernier message: 20/04/2008, 21h41
  4. Réponses: 3
    Dernier message: 17/05/2007, 19h30
  5. Réponses: 4
    Dernier message: 02/09/2006, 19h41

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