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 :

target="_blank" ne fonctionne pas?


Sujet :

JavaScript

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7
    Points : 4
    Points
    4
    Par défaut target="_blank" ne fonctionne pas?
    bonjour,
    j'ai ici une fonction qui créee un menu et la fonction MenuToolBar.Add me permet de choisir la frame dans laquelle je veux que mon boutton envoie la page. Mais je souhaite que mon boutton ouvre une nouvelle fenetre et lorsque je met:
    MenuToolBar.Add('../images/topbar/helpoff.gif', '../images/topbar/helpon.gif', 'Accueil', '../index.htm', '_blank');
    cela ne marche pas.


    merci d'avance à ceux ki pourront m'aider!
    voici mon script:





    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
    <SCRIPT language=javascript>
     
     
    // Paramétrage ici :
    var MenuToolBar=new CreerMenuToolBar('orange', '#ffcc99', 'black', '#6699FF', 'font-family:verdana;font-size:11px;color:white;font-weight:bold', 14, 14)
    MenuToolBar.Add('../images/topbar/helpoff.gif', '../images/topbar/helpon.gif', 'Accueil', '../index.htm', 'top');
    MenuToolBar.Add('../images/topbar/pouceoff.gif', '../images/topbar/pouceon.gif', 'Contact', '../documents/contact.htm', 'principal');
    MenuToolBar.Add('../images/topbar/membreoff.gif', '../images/topbar/membreon.gif', 'Forum', '../forum/index.php', 'principal');
     
    // Fonctions internes
     
     
     
    function CreerMenuToolBar(colFond, colClair, colOmbre, colCligno, style, hauteur, largeur) {this.target='_self';this.nb=0;this.colFond=colFond;this.colClair=colClair;this.colOmbre=colOmbre;this.colCligno=colCligno;this.hauteur=hauteur;this.largeur=largeur;this.style=style;this.Indice=-1;this.Nbcligno=0;this.Add=AddMenuToolBar;this.Aff=AffMenuToolBar;}
    function AddMenuToolBar(imgOff, imgOn, libelle, url, target) {var link=new Object();link.imgOff=imgOff;link.imgOn=imgOn;link.libelle=libelle;link.url=url;this[this.nb]=link;this.nb++;link.target=target;}
    function AffMenuToolBar() {
    if (document.getElementById || document.all) {
    var Z="<TABLE border=0 cellpadding=1 cellspacing=1><TR>";
    for (var i=0; i<this.nb; i++) {
    Z+="<TD onMouseOver='AffMenuToolBarOver(this,"+i+")' onMouseOut='AffMenuToolBarOut(this,"+i+")' onMouseDown='AffMenuToolBarDown(this,"+i+")' onClick='AffMenuToolBarClic(this,"+i+")' style='border-style:solid;border-width:1px;border-color:"+this.colFond+";"+this.style+";cursor:pointer'><IMG name='MenuToolBarIMG"+i+"' src='"+this[i].imgOff+"' border=0 width="+this.largeur+" height="+this.hauteur+" align=top>&nbsp;"+this[i].libelle+"</TD>";
    }
    Z+="</TR></TABLE>";
    } else {
    var Z="| &nbsp;";
    for (var i=0; i<this.nb; i++) {
    Z+="<A href='"+this[i].url+"' style='"+this.style+"'><IMG name='MenuToolBarIMG"+i+"' src=\""+this[i].imgOff+"\" border=0 width="+this.largeur+" height="+this.hauteur+" align=top>&nbsp;"+this[i].libelle+"</A>&nbsp;|&nbsp;";
    }
    }
    document.write(Z);
    }
    function AffMenuToolBarOver(obj,ind) {obj.style.borderTopColor=MenuToolBar.colClair; obj.style.borderLeftColor=MenuToolBar.colClair; obj.style.borderBottomColor=MenuToolBar.colOmbre; obj.style.borderRightColor=MenuToolBar.colOmbre; document.images['MenuToolBarIMG'+ind].src=MenuToolBar[ind].imgOn;}
    function AffMenuToolBarOut(obj,ind) {obj.style.borderTopColor=MenuToolBar.colFond; obj.style.borderBottomColor=MenuToolBar.colFond; obj.style.borderLeftColor=MenuToolBar.colFond; obj.style.borderRightColor=MenuToolBar.colFond; document.images['MenuToolBarIMG'+ind].src=MenuToolBar[ind].imgOff;}
    function AffMenuToolBarDown(obj,ind) {obj.style.borderTopColor=MenuToolBar.colOmbre; obj.style.borderLeftColor=MenuToolBar.colOmbre; obj.style.borderBottomColor=MenuToolBar.colClair; obj.style.borderRightColor=MenuToolBar.colClair;}
    function AffMenuToolBarClic(obj,ind) {MenuToolBar.Indice=ind;MenuToolBar.obj=obj;MenuToolBar.Nbcligno=0;MenuToolBarCligno()}
    function MenuToolBarCligno() {
    MenuToolBar.Nbcligno++;
    if (Math.round(MenuToolBar.Nbcligno/2) != MenuToolBar.Nbcligno/2) {
    MenuToolBar.obj.style.backgroundColor=MenuToolBar.colCligno;
    } else {
    MenuToolBar.obj.style.backgroundColor=MenuToolBar.colFond;
    }
    if (MenuToolBar.Nbcligno < 8) {
    setTimeout('MenuToolBarCligno()',50-5*MenuToolBar.Nbcligno);
    } else {
    window.parent.frames[MenuToolBar[MenuToolBar.Indice].target].location.replace(MenuToolBar[MenuToolBar.Indice].url);
    }
    }
     
    </script>

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Bonjour,
    ça semble normal puisque le tag <A HREF> généré ne contient pas d'attribut "target" ...

    A+

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7
    Points : 4
    Points
    4
    Par défaut hum?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function AddMenuToolBar(imgOff, imgOn, libelle, url, target) {var link=new Object();link.imgOff=imgOff;link.imgOn=imgOn;link.libelle=libelle;link.url=url;this[this.nb]=link;this.nb++;link.target=target;}

    le target est bien la, non?


    et est ponctué de:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    window.parent.frames[MenuToolBar[MenuToolBar.Indice].target].location.replace(MenuToolBar[MenuToolBar.Indice].url);
    ca marche bien lorsque tu mets target=_self ou target=_top donc pk pas avec _blank?

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Exact, mais c'est juste pour la définition de l'objet.
    Or quand le tag est généré, cette propriété n'apparait plus (url, style, libellé, img OK, mais pas de target) ...

    Quant aux target="_self" et target="_top", suivant où se trouve le lien, le résultat peut être le même => ça ne veut pas dire qu'ils soient gérés par le script ...
    Pour en être sûr, tu peux créer temporairement une frame supplémentaire dans ta page, et en passer le nom en paramètre : là tu verras si elle est prise en compte comme target ...

    Mais comme je peux pas tester l'exécution, ce ne sont que des pistes ...

    A+

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7
    Points : 4
    Points
    4
    Par défaut ok
    merci pour ton aide, j'ai créer une frame "menu" et ca marche. Mais toujours pas pour blank.
    hum

  6. #6
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Bon ...
    c'est visiblement lié au fonctionnement de ta librairie et je sèche

    Un truc m'étonne, c'est ton "top" (au lieu de "_top") ... je vois pas comment "il" peut faire la différence avec une "vraie" frame telle que 'principale'
    Tu as une frame "top" ?

    Dernière tentative : normallement si la target n'existe pas la page s'ouvre dans une nouvelle fenêtre

    ... en attendant que quelqu'un te donne une solution plus propre.

    A+

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7
    Points : 4
    Points
    4
    Par défaut bon ...
    alors ca marche avec top mais pas avec _top, par contre cela ne marche ni avec blank ni avec _blank.
    De plus avec une frame qui n'existe pas, bah ca marche pas :p


    Enfin bon :d merci pour ton attention !

  8. #8
    Expert éminent

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut
    Citation Envoyé par Floydz Voir le message
    window.parent.frames[MenuToolBar[MenuToolBar.Indice].target].location.replace(MenuToolBar[MenuToolBar.Indice].url);
    Cette commande est écrite de telle façon que tu ne peux que modifier l'url d'une de tes frame (y compris top qui est la page entière).

    Tu ne pourras pas, avec cette commande, créer une nouvelle fenetre.
    Je te conseille de remplacer la ligne ci-dessus par quelque chose du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if (target="_blank") {
      window.open(...);
    } else {
      window.parent.frames[MenuToolBar[MenuToolBar.Indice].target].location.replace(MenuToolBar[MenuToolBar.Indice].url);
    }

Discussions similaires

  1. Fonction Quoted printable qui ne fonctionne pas.
    Par leCcsympas dans le forum C
    Réponses: 3
    Dernier message: 13/01/2007, 18h54

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