Me explico:
A ver ahora:
La página principal tiene un iframe (para frames es parecido).
Entonces, el código de esa página princial es este:
Código Javascript
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>página uno</title>
</head>
<body>
<iframe id="pepe" width="500" height="400" src="http://www.google.com" scrolling="auto"></iframe>
<br />
<a href="javascript
:window.open('dos.html','','width= 300,height=200');void(0)">abrir popup
</a>
</body>
</html>
Como ves, al iframe le asignamos un id ("pepe") para poder referenciarlo. Debajo colocamos el link que dispara el popup. El contenido del popup es el archivo dos.html, cuyo código es este:
Código Javascript
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>página dos</title>
</head>
<body>
<p><a href="javascript
:opener.document.getElementById('p epe').src='http://www.google.com';window.close();">google y cierro</a></p>
<p><a href="javascript
:opener.document.getElementById('p epe').src='http://www.yahoo.com';void(0);">yahoo y no cierro </a></p>
</body>
</html>
Com marcos sería así:
Conjunto de marcos (al marco que queremos cambiar le ponemos el id):
Código Javascript
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin título</title>
</head>
<frameset rows="*" cols="174,*" framespacing="0" frameborder="no" border="0">
<frame src="izq.html" name="leftFrame" scrolling="No" noresize="noresize" id="leftFrame" title="leftFrame" />
<frame src="http://www.google.com" name="mainFrame" id="pepe" title="mainFrame" />
</frameset>
<noframes><body>
</body>
</noframes></html>
La página iz html tiene la llamada al popup:
Código Javascript
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin título</title>
</head>
<body>
<a href="javascript
:window.open('dos2.html','','width =300,height=200');void(0)">abrir popup
</a></body>
</html>
Finalmente, el popup es la página dos2.html:
Código Javascript
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin título</title>
</head>
<body>
<p><a href="javascript
:opener.top.document.getElementByI d('pepe').src='http://www.google.com';window.close();">google y cierro</a></p>
<p><a href="javascript
:opener.top.document.getElementByI d('pepe').src='http://www.yahoo.com';void(0);">yahoo y no cierro </a></p>
</body>
</html>
Como ves, es casi igual, sólo que hacemos referencia al frame set (top).
A ver que tal.