Codifichiamo le istruzioni JS in una function che poi invocheremo all' onchange.
Lo schema elementare sarebbe questo, l' url da caricare in pop-up lo recuperiamo ancora come .value restituito dalla SELECT, ma ora lo passiamo alla function (ecco a cosa servono le parentesi () tonde !!), dove viene raccolto e "veicolato" con un termine/parola di servizio: dove veicolato nell' istruzione da eseguire, una window.open() nel nostro caso:
codice:
<script>
function apriFinestra(dove){
window.open(dove, "", "width=380, height=260, left=100, top=50, resizable=yes, scrollbars=yes");
}
</script>
<select onchange="apriFinestra(this.value);">
<option value="null">Seleziona una voce</option>
<option value="http://www.mozilla.com/">Prima </option>
<option value="http://www.google.com/">Seconda</option>
<option value="C.html">Terza</option>
</select>
Ora inseriamo anche un if-statement che "soppesa" dove e se (if) riscontra che dove si traduce in "null" ("" stringa), non esegue niente e l' azione finisce qui, essendo vuote le { } che sono appunto deputate a contenere l' eseguibile, come le () contengono l' ipotesi; altrimenti (else) danno esecuzione a ... quello che c'è tra la associata coppia di { }
codice:
<!DOCTYPE html PUBLIC>
<html>
<head><title>9sedici 's pop-up</title>
<script type="text/javascript">
function apriFinestra(dove){
if(dove=="null"){
//esegue niente
} else {
window.open(dove, "", "width=380, height=260, left=100, top=50, resizable=yes, scrollbars=yes");
};
}
</script>
</head><body bgcolor="#90EE90">
<select onchange="apriFinestra(this.value);">
<option value="null">Seleziona una voce</option>
<option value="http://www.mozilla.com/">Prima </option>
<option value="http://www.google.com/">Seconda</option>
<option value="C.html">Terza</option>
</select>
</body>
</html>
IF-Statement
if ( ipotesi da verificare ){ istruzioni da eseguire se e solo se l' ipotesi è risultata vera };
Attenzione a non adoperare il semplice = nell' ipotesi, perché:
= rende uguale, sempre, anche tra le ()
== compara se c'è uguaglianza.
Attenzione anche a non trascinarsi coi copia-incolla, il semicolon ; tre le () che NON deve concludere un' ipotesi. Un' occorrenza di questo tipo, che può capitare e passare inosservata, blocca tutto lo script !!
Più if-else Statements possono essere strutturati in cascata.
Ti ho messo alcuni termini in Italiano nel Codice, che evidenziano dove la terminologia è lasciata alla nostra inventiva/necessità; ma sempre evitando caratteri invalidi.
Lettere e/o Numeri
l' underscore _ e il dollar sign $ come unici caratteri speciali ammessi
la nominazione NON deve cominciare con un carattere numerico.
Rispetto di maiuscole/minuscole (JS è case-sensitive).