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 :

javascript php lien nouvel onglet


Sujet :

JavaScript

  1. #1
    Membre régulier
    Femme Profil pro
    Webdesigner
    Inscrit en
    Juin 2014
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Juin 2014
    Messages : 176
    Points : 74
    Points
    74
    Par défaut javascript php lien nouvel onglet
    bonjour,
    j'ai un petit soucis
    menu.html
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <div>
         <ul>  
               <li><a href="accueil.php">accueil</a></li>
               <li><a href="documents.php" onclick="window.open(this.href);return false;">documents</a>
                    <ul>
                         <li><a href="offres.php">offres</a></li>
    ....

    code javascript
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onclick = "window.open(this.href)";return false;
    alors lorsque dans ma page d'accueil je clic sur documents, j'ai bel et bien un nouvel onglet.
    mais comment puis-je lui demander un message d'alerte (ConfirmMessage) en+, et en meme temps je l'ai essayé sans le window.open, ca fonctionne egalement mais de 1: si je clic sur OK il m'ouvre le nouvel onglet mais sur l'autre onglet il me l'ouvre aussi alors qu'il doit rester sur la page d'accueil.
    merci pour votre aide

  2. #2
    Membre du Club
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mars 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Mars 2004
    Messages : 84
    Points : 62
    Points
    62
    Par défaut
    ca fonctionne egalement mais de 1: si je clic sur OK il m'ouvre le nouvel onglet mais sur l'autre onglet il me l'ouvre aussi
    => Tu as codé deux fois 'window.open()' : dans le html et dans le javascript :-)

    Pour avoir un message de confirmation, dans le code javascript :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onclick = "alert('message de confirmation...')";return false;

  3. #3
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="documents.php" target="_blank">documents</a>

  4. #4
    Membre régulier
    Femme Profil pro
    Webdesigner
    Inscrit en
    Juin 2014
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Juin 2014
    Messages : 176
    Points : 74
    Points
    74
    Par défaut
    merci,
    fonctionne très bien...
    alors ce n'était pas qie je voulais
    donc j'ai mit et résultat:
    click sur mon lien =>message de confirmation si je veux l'ouvrir dans un nouvel onglet ou annuler si je ne veux pas.
    si ok, alors il s'ouvre bien, si j'annule il l'ouvre quand meme
    html
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <li><a href="" target="_blank" onclick="ConfirmMessage()">documents</a></li>
    js
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function ConfirmMessage(){
    if(confirm("...")){...}
    }
    je ne met rien dans l'accolade du if

    comment faire pour que lorsque je clic sur le message de confirmation que lorsque j'annule, il m'ouvre la page sur le meme onglet et non dans un nouvel onglet.
    mais si je click sur le ok du message de confirmation il doit me l'ouvrir dans un nouvel onglet...
    je dois certainement mettre un else mais je ne sais pas avec quoi

  5. #5
    Membre régulier
    Femme Profil pro
    Webdesigner
    Inscrit en
    Juin 2014
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Juin 2014
    Messages : 176
    Points : 74
    Points
    74
    Par défaut
    bon pour ne pas qu'il m'ouvre le lien quand je clic dur "annuler (a cause du ConfirmMessage() ), j'ai enlevé le target
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <li><a href=" " onclick="ConfirmMessage()"></a></li>
    js:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function ConfirmMessage(){
    if(confirm("...")){
    window.open(href="documents.php");
    }
    }
    donc si je clic sur ok, ca m'ouvre dans un nouvel onglet(ok jusque la)
    si je clic sur annuler il me le laisse dans l'onglet principal.

    en cliquant sur OK, il m'ouvre mon nouvel onglet mais lorsque je retourne sur l'onglet principal je constate qu'il me l'a egalement ouvert, hors je ne veux pas ca je veux que lorsqu'il m'ouvre mon nouvel onglet, que l'onglet principal reste sur la page sur laquel j'etais

  6. #6
    Membre confirmé
    Homme Profil pro
    Déveleoppeur Web/Mobile
    Inscrit en
    Avril 2013
    Messages
    330
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Déveleoppeur Web/Mobile
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 330
    Points : 545
    Points
    545
    Par défaut
    Ton code javascript est éxecuté mais le comportement natif de balise <a> est également éxecutée d'où le fait que ta page principale change également. Il faut indiquer dans ta fonction javascript qu'il faut enlever le comportement par défaut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <a href=" " id="monlien"></a>
    document.getElementById("monlien").addEventListener('click', function(event){
        event.preventDefault(); // cela permet d'enlever le comportement par défaut du lien, à savoir rediriger vers le lien href
        .... // puis tu éxecutes ton code
     
    });

  7. #7
    Membre régulier
    Femme Profil pro
    Webdesigner
    Inscrit en
    Juin 2014
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Juin 2014
    Messages : 176
    Points : 74
    Points
    74
    Par défaut Rpass
    alors j'ai mit dans mon html
    le id comme tu l'as marqué.
    puis dans mon js:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    document.getElementById("monlien").addEventListener('click', function (event) {
    event.preventDefault();
     
    function ConfirmMessage(){
    if (confirm("...")){
        window.open(href="....");
          }
       }
    });
    et bien ma fonction ConfirmMessage() est grise dans mon html ainsi que dans js...
    et elle ne fonctionne plus.

  8. #8
    Membre confirmé
    Homme Profil pro
    Déveleoppeur Web/Mobile
    Inscrit en
    Avril 2013
    Messages
    330
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Déveleoppeur Web/Mobile
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 330
    Points : 545
    Points
    545
    Par défaut
    effectivement comme cela ça ne peut marcher, il faut déclarer ta fonction avant et l'utiliser après

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function ConfirmMessage(){
    if (confirm("...")){
        window.open(href="....");
          }
       }
    document.getElementById("monlien").addEventListener('click', function (event) {
    event.preventDefault();
     confirmMessage();
    });

  9. #9
    Membre régulier
    Femme Profil pro
    Webdesigner
    Inscrit en
    Juin 2014
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Juin 2014
    Messages : 176
    Points : 74
    Points
    74
    Par défaut
    et bien j'ai bien maintenant mon message de confirmation...
    mais toujours le même problème...
    lorsque je revais sur l'onglet principal, l'onglet a ouvert la meme page que dans l'onglet...
    je ne sais pas si ca peut jouer mais mon lien c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    doc.php?page=documents

  10. #10
    Membre confirmé
    Homme Profil pro
    Déveleoppeur Web/Mobile
    Inscrit en
    Avril 2013
    Messages
    330
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Déveleoppeur Web/Mobile
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 330
    Points : 545
    Points
    545
    Par défaut
    D'accord, essaie alors :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    document.getElementById("monlien").addEventListener('click', function (event) {
     if(confirm("...")){
    window.open(href="documents.php");
    }
    else {
      return false;
    }
    });
    le preventDefault n'est peut être pas pris en compte en javascript je ne me souviens plus, le return false devrait indiquer au lien de ne pas s'éxecuter par défaut.
    J'ai mis le code comme ça mais à toi de le mettre comme tu veux dans une fonction confirmMessage etc

  11. #11
    Membre régulier
    Femme Profil pro
    Webdesigner
    Inscrit en
    Juin 2014
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Juin 2014
    Messages : 176
    Points : 74
    Points
    74
    Par défaut
    j'ai essayer la function ConfirmMessage, avant, dedans,après...fonctionne pas...
    j'ai essayé plusieurs possibilités et ca ne change pas...

    bon bin merci quand meme d'avoir prit le temps de resoudre mon soucis, mais si ça se met, cela n'est peut être pas possible...

    encore merci

  12. #12
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    je peux jouer ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function ConfirmMessage(url){ 
    	if(confirm("Cliquez sur le bouton \"OK\" pour ouvrir la page : "+url))
    	{
    		window.open(href=url);
    	}
    };
    N.B. en passant l'URL en paramètre de la fonction, cela te permet d'utiliser plusieurs fois cette fonction avec différents liens.

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="" onclick="ConfirmMessage('doc.php?page=documents');return false;">documents</a>
    Ceci devrait fonctionner aussi :
    c'est plus sémantique, et surtout le lien fonctionnera même si JavaScript est désactivé.
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="doc.php?page=documents" onclick="ConfirmMessage(this.href);return false;">documents</a>
    N.B. le return false; est important.
    Dernière modification par Invité ; 03/03/2015 à 09h51.

  13. #13
    Membre régulier
    Femme Profil pro
    Webdesigner
    Inscrit en
    Juin 2014
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Juin 2014
    Messages : 176
    Points : 74
    Points
    74
    Par défaut
    vient jouer ...
    alors ton second code je l'avais deja employé ^^...
    seul soucis, comment mettre le ConfirmMessage en +?

    quand tu parles de l'url je dois donc mettre mon lien?
    je travail sous wamp (je precise)

  14. #14
    Invité
    Invité(e)
    Par défaut
    Euhh... il suffit de copier-coller ce que j'ai écrit.
    Script JS compris.

  15. #15
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Script JS compris.
    Bof bof...

    Ce serait plutôt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    window.open(url, '_blank');

    Mais bon, le plus simple, ce serait AMHA
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="doc.php?page=documents" target="_blank" onclick="return confirm('Voulez-vous ouvrir la page ' + this.href + ' ?');">Ouvrir la page</a>

  16. #16
    Membre régulier
    Femme Profil pro
    Webdesigner
    Inscrit en
    Juin 2014
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Juin 2014
    Messages : 176
    Points : 74
    Points
    74
    Par défaut
    nikel pour le return confirm; c'est exactement ce que je voulais je vais pouvoir le mettre pour les liens dont j'en avais besoin

  17. #17
    Membre régulier
    Femme Profil pro
    Webdesigner
    Inscrit en
    Juin 2014
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Juin 2014
    Messages : 176
    Points : 74
    Points
    74
    Par défaut
    j'ouvre à nouveau cette discussion, car oui cela m'affiche bel et bien ce que je voulais:

    si je clic sur le lien de mon document il va l'ouvrir un message me demandant si je veux ouvrir ce lien dans un nouvelle onglet ou l'annuler.
    bon si je clic sur ok, ça m'ouvre le nouvel onglet et l'onglet principal reste là ou j'étais.(c'est ce que je voulais)

    Par contre maintenant si je clic sur annuler, il reste sur la page d'accueil alors que: je ne veux pas qu'il m'ouvre ce lien dans un nouvel onglet en cliquant sur "annuler" mais qu'il me l'ouvre dans l'onglet principal.

    donc en clair: bouton "ok" du message de confirmation==>ouverture du lien dans un nouvel onglet (l'onglet principal reste sur la page ou j'étais)
    bouton "annuler" du message de confirmation==>ouverture du lien dans l'onglet principal ( là si je clic sur "annuler" il ne me l'ouvre pas).

    merci

  18. #18
    Membre confirmé
    Homme Profil pro
    Déveleoppeur Web/Mobile
    Inscrit en
    Avril 2013
    Messages
    330
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Déveleoppeur Web/Mobile
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 330
    Points : 545
    Points
    545
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    function ConfirmMessage(url){ 
    	if(confirm("Cliquez sur le bouton \"OK\" pour ouvrir la page : "+url))
    	{
    		window.open(url);
                    return false;
    	}
    };
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <a href="doc.php?page=documents" onclick="confirmMessage(this.href);">Ouvrir la page</a>

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Bouton avec lien nouvel onglet
    Par TBMB51 dans le forum ActionScript 3
    Réponses: 1
    Dernier message: 01/05/2011, 12h10
  2. Ouvrir lien dans nouvel onglet
    Par jakkihm dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 28/04/2008, 17h31
  3. ouvrir un lien dans un nouvel onglet
    Par rvm31 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 18/02/2008, 19h00
  4. Forcer l'ouverture d'un lien dans un nouvel onglet IE
    Par lucie.houel dans le forum Général Conception Web
    Réponses: 6
    Dernier message: 30/11/2007, 08h47
  5. [Javascript/PHP] Affichage par onglets
    Par Sayrus dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 03/05/2007, 08h39

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