Continuando con esta pregunta aquí: Acceso a la variable de JavaScript en un iframe, desde la ventana principal en el mismo dominio
Con el fin de publicar algo comprobable aquí, tengo un archivo src.js configurado como:
var foo = {"foo":"bar"};entonces puedo crear una página HTML test1.html con esta línea en el encabezado:
<script src="src.js" type="text/javascript"></script>Luego tengo otra página HTML test2.html, con
<iframe src="test1.html"></iframe> ¿Cómo puedo acceder a foo desde test2.html? Intenté lo siguiente pero no pude encontrar foo (ejecutando esto al hacer clic en el botón desde un div en test2.html)
console.log("foo: " + typeof foo); console.log("foo: " + window.foo); console.log("Frame window: " + window.frames[0].window); //this works console.log("Sections: " + window.frames[0].window.foo); Nota: en el iframe, foo definitivamente está ahí
Esto es lo que finalmente funcionó para mí. En la biblioteca JS:
const foo = {"foo":"bar"}; window.getFoo = function() { return foo; }En la página con iFrame (test2.html):
var iframe = document.getElementById("mainPanel"); //mainPanel is the id of the iframe var iWindow = iframe.contentWindow; var foo = iWindow.getFoo();