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 :

Ouverture de lien avec window.open()


Sujet :

JavaScript

  1. #1
    Membre expert
    Avatar de Janitrix
    Inscrit en
    Octobre 2005
    Messages
    3 391
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 3 391
    Points : 3 401
    Points
    3 401
    Par défaut Ouverture de lien avec window.open()
    Bonjour,

    Je rencontre actuellement un problème assez curieux avec mon site.

    Afin d'ouvrir les liens externes dans un nouvel onglet ou nouvelle fenêtre du navigateur, et dans le soucis de faire un code non obstrusif, je fais comme ceci :
    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
    function ouvrirLien(event) {	
     
    	Event.stop(event);
    	window.open(Event.element(event).href);
    	return false;	
     
    }
     
    function modifierLiens() {
    	var lien = document.getElementsByClassName('external');
     
    	var length = lien.length;
     
    	for(var i = 0; i < length; i++) {		
    		Event.observe(lien[i], 'click', ouvrirLien);		
    	}
    }
     
    Event.observe(window, 'load', modifierLiens, false);
    J'utilise donc la bibliothèque Prototype, mais le problème n'est pas là. En effet, par exemple sur la page suivante, il y a plusieurs liens externes, tous avec la classe "external".

    Cependant, seuls quelque uns fonctionnent. En effet, si vous cliquez sur le lien 'SEO (Search Engine Optimization)' au début de la page, si vous avez activé Javascript, une nouvelle fenêtre devrait s'ouvrir.

    Mais si vous cliquez sur 'Introduction à la SEO (optimisation de pages Web)' plus bas, le lien est ouvert dans l'onglet actuel.

    Pourtant, si vous regardez la source html, ce lien a aussi la classe "external" !

    L'évenement est bien ajouté, puisque si je fais :
    dans la fonction modifierLiens, il m'affiche bien le lien concerné.

    Avez-vous une idée ?

    Merci de votre aide

  2. #2
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    Pourquoi ne pas utiliser la méthode de la FAQ ?

    http://xhtml.developpez.com/faq/?page=liens#LIEN_target

  3. #3
    Membre expert
    Avatar de Janitrix
    Inscrit en
    Octobre 2005
    Messages
    3 391
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 3 391
    Points : 3 401
    Points
    3 401
    Par défaut
    C'est du code directement intégré avec le HTML, or j'aimerai éviter.

    Mais c'est vrai que ça simplifierai, cependant j'essaie de faire quelque chose de propre.

    Merci quand même

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

Discussions similaires

  1. ouverture d'un fenêtre avec window.open
    Par DeveloppeurWeb dans le forum ASP.NET
    Réponses: 3
    Dernier message: 11/11/2010, 13h36
  2. Ouverture d'une page avec window.open
    Par Friksstyle dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 21/05/2010, 16h37
  3. Problème bizzar avec window.open
    Par MANU_2 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 20/09/2005, 11h42
  4. coordonnées d'une fenêtre avec window.open
    Par neecolas dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 25/05/2005, 09h08
  5. QueryString avec window.Open ??
    Par christine dans le forum ASP
    Réponses: 4
    Dernier message: 29/08/2003, 09h27

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