2009-09-18 10 views
5

Jaki jest najlepszy sposób na zmianę adresu URL za pomocą html select?Zmiana adresu URL za pomocą html select

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

Jaki Javascript powinien być używany?

+0

[http://www.cs.tut.fi/~jkorpela/forms/navmenu.html](http://www.cs.tut.fi /~jkorpela/forms/navmenu.html) ma dobry przewodnik (który zawiera kilka dobrych powodów, dla których nie powinieneś tego robić). – Quentin

Odpowiedz

-3

dodając na przykład coś takiego w nagłówku

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

i swojej zaznaczania wygląda wtedy jak ten

<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. Nie używaj 'eval()'. Nie jest to tutaj konieczne i jest to naprawdę zła praktyka. http://blogs.msdn.com/ericlippert/archive/2003/11/01/53329.aspx ... http://www.jslint.com/lint.html i inne. –

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> 

Kilka przydatnych wartości target może być 'window' (bieżące okno) lub 'top' (w celu rozbicia zestawu ramek lub ramki iframe). Jeśli chcesz otworzyć nowe okno zamiast tego można użyć navigateTo(this, 'someWindow', true);

wartość „--- --- atrybutów” jest ustawiana za pomocą różnych właściwości, jak udokumentowano here for Mozilla i here for IE. Na przykład:

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

Świetnie! Powyższy kod działa sprawnie. –

5

Jeśli masz jQuery można zrobić ...

JavaScript.

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

html:

...