2009-09-16 6 views
0

J'ai un sélecteur déroulant en place et j'ai besoin de le changer pour que la cible = "_ blank" ouvre un nouvel onglet.Sélecteur de liste déroulante, changer pour target = "_ blank"

Voici le code actuel:

<SCRIPT TYPE="text/javascript"> 
<!-- 
function dropdown(mySel) 
{ 
var myWin, myVal; 
myVal = mySel.options[mySel.selectedIndex].value; 
if(myVal) 
    { 
    if(mySel.form.target)myWin = parent[mySel.form.target]; 
    else myWin = window; 
    if (! myWin) return true; 
    myWin.location = myVal; 
    } 
return false; 
} 
//--> 
</SCRIPT> 

<div id=countryselector> 
    <FORM 
     ACTION="../cgi-bin/redirect.pl" 
     METHOD=POST onSubmit="return dropdown(this.gourl)"> 
     <SELECT NAME="gourl"> 
      <OPTION VALUE="">Select a Country... 
      <OPTION VALUE="http://google.com">USA 
      <OPTION VALUE="http://google.ca">Canada 
     </SELECT> 
     <INPUT TYPE=SUBMIT VALUE="Go"> 
    </FORM> 
</div> 

Merci à l'avance

Répondre

1
function dropdown(mySel) { 
    var myVal = mySel.options[mySel.selectedIndex].value; 
    if (myVal) { 
     if (mySel.form.target) { 
      window.open(myVal, mySel.form.target, '_attributes_'); 
     } else { 
      window.location.href = myVal; 
     } 
    } 
    return false; 
} 

Une liste des _attributes_ peut être trouvé here for Mozilla ou here for IE. Il y a quelques différences dans certaines des options disponibles, il est donc préférable d'examiner les deux listes.

Vous pouvez également laisser le troisième paramètre de l'appel de fonction et il devrait se comporter comme target="_blank" sur votre <form>:

// behaves as if you submitted <form ... target="_blank">: 
window.open(myVal, mySel.form.target); 

Voici un exemple en utilisant un ensemble de _attributes_ comme indiqué sur les liens fournis pour ouvrir une fenêtre d'une taille spécifique et la position des parties spécifiques de l'interface utilisateur supprimé:

// this opens a window that is 400 pixels by 300 pixels 
// it is positioned 100 pixels from the top and the left 
// it will have no statusbar, no menu but the new window will have a toolbar: 
window.open(myVal, mySel.form.target, 
    'height=300,width=400,top=100,left=100,statusbar=0,menu=0,toolbar=1'); 
+0

Je ne peux pas le faire fonctionner ... Est-il censé ressembler à ceci: liste déroulante de fonctions (mySel) { var myVal = mySel.options [mySel.selectedIndex] .value; if (myVal) { if (monSel.form.target) { window.open (myVal, mySel.form.target, 'target = "_blanc"'); } else { window.location.href = myVal; } } return false; } – BassKozz

+0

@BassKozz: Non. '_attributes_' sont des choses comme' 'statusbar = 0, menu = 0, top = 10, left = 10'' (pas de barre d'état dans la nouvelle fenêtre, pas de menu, positionne la nouvelle fenêtre 10 pixels en haut et à gauche). –

+0

Ne fonctionne pas ... window.open (myVal, mySel.form.target); Toujours ouvrir le lien dans la même fenêtre. – BassKozz

Questions connexes