2009-09-18 2 views
5

Qual è il modo migliore per modificare l'URL tramite una selezione HTML?Cambiare l'URL tramite html selezionare

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

Che tipo di Javascript deve essere utilizzato?

+0

[http://www.cs.tut.fi/~jkorpela/forms/navmenu.html](http://www.cs.tut.fi /~jkorpela/forms/navmenu.html) ha una buona guida (che include alcuni buoni motivi per cui non dovresti farlo). – Quentin

risposta

-3

aggiungendo per esempio qualcosa di simile nell'intestazione

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

e la tua casella di selezione cerca quindi come questo

<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. Non usare 'eval()'. Non è necessario qui ed è davvero una cattiva pratica. http://blogs.msdn.com/ericlippert/archive/2003/11/01/53329.aspx ... http://www.jslint.com/lint.html e altri –

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> 

Alcuni valori utili di target potrebbero essere 'window' (la finestra corrente) o 'top' (per uscire da un set di frame o iframe). Se si vuole aprire una nuova finestra, invece, è possibile utilizzare navigateTo(this, 'someWindow', true);

Il valore di '--- --- attributi' è impostato utilizzando varie proprietà come documentato here for Mozilla e here for IE. Per esempio:

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

Eccellente! Il codice sopra funziona perfettamente. –

5

Se si dispone di jQuery si poteva fare ...

javascript:.

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

html:

...