Вообще доступ организуется так:
Из основного окна к переменным фрейма:
frames['имя_фрейма'].имя_переменной
Из фрейма к родителю:
parent.имя_переменной или top.имя_переменной (лучше юзать parent)
Вот пример:
main.html
<html>
<head>
</head>
<body>
<script>var txt='Это текст из JavaScript main';</script>
<div id='dd'></div>
<iframe name='myiframe' src='iframe.html' style='position:absolute;top:100px;left:100px;' border="1"></iframe>
<script>setTimeout("document.getElementById('dd').innerHTML = frames['myiframe'].txt2",1000);</script>
</body>
</html>
iframe.html
<html>
<head>
</head>
<body>
<script>var txt2='Это текст из JavaScript IFRAME';</script>
<div id='dd'></div>
<script>document.getElementById('dd').innerHTML = parent.txt;</script>
</body>
</html>
Один нюанс, стучаться к фрему нужно после его загрузки, я использовал таймаут, но можно просто проверять - загружен ли он и тогда ломиться к переменным фрейма.
Еще момент, работать будет только если основное окно и фрейм на одном домене. Из соображений безопасности кроссдоменный доступ запрещен.