Buenas
He probado tu código, y funciona bien en Firefox pero no en IE.
No encuentro el problema, pero está en el momento de aplicar la nueva opción: la crea pero no pasa de la línea
Código:
window.opener.document.forms['form1'].lista.options[longitud] = option_nueva;
Leo en la web que IE5 tenía ciertos problemas, quizás sigan en IE6:
Cita: 1. Generating options in another frame or window doesn't work. Put the script in the page that contains the select.
...
3. Generating options from a popup window may crash any Explorer Windows.
Eso lo explicaría.
Visto esto, he pensado en hacer que sea un script de la página padre el que añada la opción, y resulta que ya tenías una función para ello, así que la idea es pasarle los parámetros desde la ventana hija. Así funciona, aunque no sé si te servirá:
Código:
function aniade(arg)
{
var laLista = window.opener.document.forms['form1'].lista;
window.opener.Rellenar(laLista,"texto","valor");
}
He usado la sintaxis
document.forms['form1'].lista
pues es más correcta que
form1.lista
aunque ese no era el problema.
Por otra parte, creo que tienes alternado el orden "valor","texto", en un sitio y otro están de modo opuesto.
Otras cosillas que debes corregir:
Código:
function Rellenar(lista,valor,texto){
var i=0;
var enc=false;
//var valor;
...etc...
"valor" es el parámetro que le llega a la función, no debes inicializarlo.
Código:
<body onLoad="forms['form1'].modal.focus()">
Código:
onClick="Rellenar(this.form.lista,'valor','texto')"
Código:
<body onLoad="document.forms['form1'].Cerrar.focus()">
¡Suerte!