Votre variable est true et n'est pas un objet en raison des règles de politique du même domaine. Tout comme une iframe, si la fenêtre contextuelle que vous ouvrez ne se trouve pas sur le même domaine ou sous-domaine, elle est perdue pour vous après que vous l'avez créée. Le web serait un endroit très peu sûr si je pouvais, par exemple, ouvrir une iframe (cachée) sur mon site vers gmail.com et être en mesure de lire votre courrier électronique.
Même si la fenêtre contextuelle se trouve sur un sous-domaine, vous devez faire un travail supplémentaire et définir la valeur document.domain des deux fenêtres sur le domaine racine (par exemple, mydomain.com). Cela permet de s'assurer que le site qui apparaît dans la fenêtre contextuelle est connu de son parent (là encore, pensez à la sécurité, si ma communauté coke.ning.com pouvait ouvrir une iframe cachée vers votre pepsi.ning.com et faire des tentatives de force brute pour se connecter, etc.)
Pour prouver ce que j'avance, essayez d'aller sur google.com et d'ouvrir Firebug (ou Inspector si vous utilisez Safari ou Chrome) et de faire :
var bob = window.open('http://google.com' , "moderatorWindow", 'width=300, height=300');
bob.window.location.href; // returns "http://www.google.com/"
Enfin, vous pouvez appeler jQuery sur la page enfant pour modifier des éléments sur la même page et vice-versa, mais vous ne pouvez pas utiliser jQuery d'une page pour modifier le dom de l'autre page. J'ai essayé cela il y a quelques années pour gagner du temps de chargement et, à moins que quelque chose n'ait changé, cela ne fonctionne pas. jQuery semble être lié à l'objet fenêtre de l'endroit où il a été créé. Des choses bizarres se produisent.