2009-09-18 5 views
5

Quelle est la meilleure façon de changer votre URL via un select html?Changement d'URL via html sélectionnez

<select> 
<option selected="selected">Change to URL X</option> 
<option>Change to URL Y</option> 
</select> 

Quel langage Javascript doit être utilisé?

+0

[http://www.cs.tut.fi/~jkorpela/forms/navmenu.html](http://www.cs.tut.fi /~jkorpela/forms/navmenu.html) a un bon guide (qui comprend quelques bonnes raisons pour lesquelles vous ne devriez pas faire cela). – Quentin

Répondre

-3

ajoutant par exemple quelque chose comme ça dans l'en-tête

<script language="JavaScript" type="text/javascript"> 
function jumpMenu(targ,selObj,restore){ 
    eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'"); 
} 
</script> 

et votre boîte de sélection ressemble alors à ce

<select onchange="jumpMenu('parent',this)> 
<option selected="selected">Change to URL X</option> 
<option value="http://www.example.com">Change to URL Y</option> 
</select> 
+3

-1. N'utilisez pas eval() '. Ce n'est pas nécessaire ici et c'est vraiment une mauvaise pratique. http://blogs.msdn.com/ericlippert/archive/2003/11/01/53329.aspx ... http://www.jslint.com/lint.html et autres –

6
<script type="text/javascript"> 
function navigateTo(sel, target, newWindow) { 
    var url = sel.options[sel.selectedIndex].value; 
    if (newWindow) { 
     window.open(url, target, '--- attributes here, see below ---'); 
    } else { 
     window[target].location.href = url; 
    } 
} 
</script> 

<select onchange="navigateTo(this, 'window', false);"> 
<option selected="selected" value="http://www.example.com/#X">Change to URL X</option> 
<option value="http://www.example.com/#Y">Change to URL Y</option> 
</select> 

Certaines valeurs utiles de target pourraient être 'window' (la fenêtre en cours) ou 'top' (pour sortir d'un jeu de cadres ou d'iframe). Si vous souhaitez ouvrir une nouvelle fenêtre à la place, vous pouvez utiliser navigateTo(this, 'someWindow', true);

La valeur de « --- attributs --- » est définie en utilisant diverses propriétés comme indiqué here for Mozilla et here for IE. Par exemple:

'height=300,width=400,top=100,left=100,statusbar=0,toolbar=1' 
+0

Excellent! Le code ci-dessus fonctionne bien. –

5

Si vous avez jQuery vous pouvez faire ...

javascript.

$ ('# select_url') changement (fonction (evnt) {location.href = $ (this) .val();});

html:

...

Questions connexes