Toda, programación, sugiere que solo se ejecuta una vez. Amenos que le digas que se ejecute múltiples veces. Javascript, trabaja por eventos, eso quiere decir si pasa X evento haga Y. En este caso el evento es "onChange", es decir "cuandoCambie", haga lo otro.
Quieres hacer cambiar un atributo pero dicho atributo esta ligado con la selección. Pero no siempre queremos que se ejecute, sino únicamente cuando cambie. Listo, ya tenemos lo mas complicado, que es saber como se deberá ejecutarse el código.
En Javascript
Yo utilizara
jQuery, es una librería que ayuda a insertar eventos en el Html, así no nos matamos la cabeza, creando cosas que ya están programadas.
Código Javascript :
conts URLS = [ // La forma correcta de escribirlo segun JShint
"//e.issuu.com/embed.html#0/5202806",
"//e.issuu.com/embed.html#0/5203170",
"//e.issuu.com/embed.html#0/5203091",
"//e.issuu.com/embed.html#0/5203144"
];
$( "MiSelector" ).change(function(event) {
var val = $("MiSelector > opcion:checked ").value();
var url = URLS[ val ];
$('LoQueCambie').attr( 'scr', url );
});
Notas:
1. Se que se puede hacer en CSS3, sin embargo no es recomendable (Por a hora)
2. No uses 'new Array', 'new String', 'new Object', 'new Number' o 'new Boolsean'. Este tipo de constructor, no tienen necesidad de construirse. Únicamente cuando sea extremamente necesario.
3. El uso de 'conts' determina constantes, sin embargo no esta prefinido.
5. El uso de librerías, hace las cosas mas fáciles.