que usted tiene un alert2 función global:¿Es posible llamar a un método de Javascript en el contexto de otra ventana?
function alert2(msg) {
window.alert(msg);
}
Y también hay una referencia a un segundo objeto de la ventana:
childWindow = window.open(myUrl);
Ahora que desea llamar alert2 de la ventana en el contexto de la ChildWindow :
alert2.call(childWindow, "does not work without this.window");
aparece el cuadro de diálogo en la ventana principal porque "ventana" dentro de alert2 está unido a la ventana en la que este método era definir d (la ventana principal).
Una solución es modificar alert2:
function alert2(msg) {
this.alert(msg);
}
¿Es posible hacer esto sin esta modificación? Algo como esto:
alert2.call(childWindow.parent, "no such thing as window.parent");
Esto es un ejemplo artificial; childWindow.alert ("") no es lo que estoy buscando!
Mi fuente puede ser visto y modificado en jsFiddle comenzando con http://jsfiddle.net/hJ7uw/2/
... Gracias a su código de ilustrar mi comprensión del problema. En este caso, no hay forma de sustituir el significado de "niño" o "padre" en func() anterior. De forma similar, parece que no hay forma de sustituir el significado de "ventana" en una función porque se capturó "ventana" cuando se creó la alerta2 así como "padre" y "niño" se captura cuando se define func. –