Ver Mensaje Individual
  #10 (permalink)  
Antiguo 20/11/2008, 13:40
mamawei
 
Fecha de Ingreso: septiembre-2008
Mensajes: 20
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Duda con abrir enlace dentro de iframe en nueva ventana/pestaña

excelente ElJavista, lo probé pero me modificaba los links de la página que contiene el iframe, en vez de los de dentro del iframe que al caso es lo que me interesa.

Lo que hice en total fue esto:
Código:
<script type="text/javascript">
function cambiarEnlaces()
{
	var lnks = document.getElementsByTagName("a");
	for (var i = 0; i < lnks.length; i ++) 
		lnks[i].href = "?mod=foro&url=" + lnks[i].href;
}
</script><?

if (!isset($_GET['url']))
	$url = './foro/';
else
	$url = $_GET['url'];?>
    
<IFRAME id='myiframe' src="<? echo $url;?>" scrolling="auto" 
marginheight="0" marginwidth="0" frameborder="0" width="877" onLoad="resizeIframe(this.id);cambiarEnlaces()">
</IFRAME>
Quité la condición de "_blank" porque me interesa que todos tengan la misma expresión en su href. Ojo que la página que contiene este código es la '?mod=foro', ya que forma parte de una web modular.

Entonces, como el foro phpbb3 'incrustado' no es modular y por ejemplo tiene una parte de 'viewtopic.php', otra de 'viewforum.php', etc, ahora, en vez de tener que colocar ese cambiarEnlaces() en cada php del foro para así poder acceder a cualquier parte del mismo sin problema, lo que os consulto ahora es si hay alguna forma de definir esos atributos de las etiquetas "a" pero para sólo el iframe al que como ven puse el id 'myiframe', y no la página que lo contiene

Lo intenté haciendo esto:
Código:
<script type="text/javascript">
function cambiarEnlaces(idIframe)
{
	var lnks = document.getElementById(idIframe).getElementsByTagName("a");
	for (var i = 0; i < lnks.length; i ++) {
		lnks[i].href = "?mod=foro&url=" + lnks[i].href;
	}
}
</script><?

if (!isset($_GET['url']))
	$url = './foro/';
else
	$url = $_GET['url'];?>
    
<IFRAME id='myiframe' src="<? echo $url;?>" scrolling="auto" 
marginheight="0" marginwidth="0" frameborder="0" width="877" onLoad="resizeIframe(this.id);cambiarEnlaces(this.id)">
</IFRAME>
pero no dió resultado, ya que no sé exactamente qué expresión usar aquí:
Código:
var lnks = document.getElementById(idIframe).getElementsByTagName("a");
para que la variable lnks apunte sólo a las etiquetas del elemento 'myiframe'

Muchas gracias ElJavista, realmente me está sirviendo bastante tu ayuda

Salu2!