Solución:
No puede “pasar” variables a través de referencias de archivo. Debería agregar código para pasar datos del marco principal al iframe.
Si la variable es global es
//from the iframe
var theVariable = window.parent.yourVaraibleName;
//from the parent
var theVariable = document.getElementById("iframeId").contentWindow.yourVaraibleName;
¿Por qué no usar cookies jQuery para pasar las variables? Incluso dentro de las múltiples páginas. Una vez que pase la variable, puede destruir la cookie.
No puede pasar variables de un archivo js a las otras variables de Javascript son stateless
para que no se retengan. Si está utilizando .Net, puede hacer uso de las variables de sesión para resolver este propósito. Si usa MVC, puede optar por viewbag o viewdata. Si es necesario, entonces declare alguna variable en la página de inicio, luego asigne el valor que se pasará a la variable en la página de inicio y luego llame a la función en 3.js pasando este parámetro.