Tengo dos ventanas, una se abre desde otra, entonces, tengo una propiedad opener
en la ventana "secundaria".No se puede pasar una función de una ventana a otra en IE
La ventana principal tiene alguna función en alcance global, que se debe invocar con una función como primer argumento (se utilizará como una devolución de llamada).
Ambas páginas se abren desde mismo dominio, así, no tiene ninguna restricción Política mismo origen (eso espero) ...
En una ventana secundaria que tengo un código como éste
if(window.opener) {
window.opener.myFunction(function() { ... });
}
Todo funciona bien, hasta que intento ejecutarlo en IE. En este navegador, un argumento, recibido por myFunction
, SIEMPRE es del tipo Object
(marcado con typeof
). Código de myFunction
es algo como esto:
window.myFunction = function(cb) {
alert('Callback type is ' + (typeof cb));
if(typeof cb == 'function')
cb();
else
alert('Not a function!');
}
Demostración en directo: http://elifantiev.ru/ie-opener-issue/first.html
las preguntas es:
- ¿Es esta una estandares de conducta de cumplimiento?
- ¿hay alguna solución para este problema?
Especifique la versión (es) de IE en la que encuentra este problema. –
IE7 + (IE 7,8,9) – Olegas