Hola a todos. Llevo días peleándome con el código de una página que estoy editando con el dreamweaber sin éxito. No es la primera vez que diseño una página de este tipo sin problemas, me bastaba con poner las targetas target="contentframe" en cada enlace del menú para que todo cargase en el iframe de turno... pero esta vez quise ser algo más profesional, así que edité el menú desde el dreamweaber. A primera vista está muy bien pero luego no consigo que funcione. He estado buscando en google e incluso e añadido una función para obligar a los enlaces a abrir en el iframe pero sigo igual, estoy ya cansada, cabreada y algo desesperada y cada día que intento resolverlo acabo dejándolo por imposible . Espero que alguno de vosotros pueda ayudarme. Os dejo aquí las partes del código relativas al menú y al iframe y a ver si encontrais el fallo:
Esto va entre las etiquetas del head, es la función que enconé googleando para obligar al iframe a abrir en el menú:
<script language="JavaScript">
<!--
function getKeys()
{
var keys = new Object();
var queryString = location.search.substring(1);
var keyPairs = queryString.split("&");
for(var i = 0; i < keyPairs.length; i++)
{
var position = keyPairs[i].indexOf('=');
if (position == -1) continue;
var keyname = keyPairs[i].substring(0, position );
var keyvalue = keyPairs[i].substring(position + 1);
keys[keyname] = unescape(keyvalue);
}
return keys;
}
Justo a continuación va la función que carga las imágenes del menú:
function MM_preloadImages() { //v3.0
var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
function MM_findObj(n, d) { //v4.01
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}
function MM_nbGroup(event, grpName) { //v3.0
var i,img,nbArr,args=MM_nbGroup.arguments;
if (event == "init" && args.length > 2) {
if ((img = MM_findObj(args[2])) != null && !img.MM_init) {
img.MM_init = true; img.MM_up = args[3]; img.MM_dn = img.src;
if ((nbArr = document[grpName]) == null) nbArr = document[grpName] = new Array();
nbArr[nbArr.length] = img;
for (i=4; i < args.length-1; i+=2) if ((img = MM_findObj(args[i])) != null) {
if (!img.MM_up) img.MM_up = img.src;
img.src = img.MM_dn = args[i+1];
nbArr[nbArr.length] = img;
} }
} else if (event == "over") {
document.MM_nbOver = nbArr = new Array();
for (i=1; i < args.length-1; i+=3) if ((img = MM_findObj(args[i])) != null) {
if (!img.MM_up) img.MM_up = img.src;
img.src = (img.MM_dn && args[i+2]) ? args[i+2] : args[i+1];
nbArr[nbArr.length] = img;
}
} else if (event == "out" ) {
for (i=0; i < document.MM_nbOver.length; i++) {
img = document.MM_nbOver[i]; img.src = (img.MM_dn) ? img.MM_dn : img.MM_up; }
} else if (event == "down") {
if ((nbArr = document[grpName]) != null)
for (i=0; i < nbArr.length; i++) { img=nbArr[i]; img.src = img.MM_up; img.MM_dn = 0; }
document[grpName] = nbArr = new Array();
for (i=2; i < args.length-1; i+=2) if ((img = MM_findObj(args[i])) != null) {
if (!img.MM_up) img.MM_up = img.src;
img.src = img.MM_dn = args[i+1];
nbArr[nbArr.length] = img;
} }
}
//-->
</script>
En la etiqueta de body va el resto:
<body onLoad="updateFrame();MM_preloadImages('../pics/noticias.gif','../pics/noticiaslink.gif','../pics/bio.gif','../pics/biolink.gif','../pics/america.gif','../pics/americalink.gif','../pics/alicia.gif','../pics/alicialink.gif','../pics/cuando.gif','../pics/cuandolink.gif','../pics/malu.gif','../pics/malulink.gif','../pics/cabalum.gif','../pics/cabalumlink.gif','../pics/contacto.gif','../pics/contactolink.gif','../pics/links.gif','../pics/linkslink.gif')">
La parte que pone onLoad="updateFrame() es para la función del frame, el resto es para la carga de imágenes
y ya en el cuerpo de la página tengo el iframe en una capa:
<div id="Layer3" style="position:absolute; left:377px; top:50px; width:550px; height:492px; z-index:3"><iframe id=contentframe
name=contentframe marginWidth=0 marginHeight=0
src="noticias.htm" frameBorder=0 width=550
height=490></iframe></div>
(me pregunto si el error puede estar en el id, el name o el src)
Y, por último, esta es la capa que contiene el menú:
<div align="center">
<table border="0" cellpadding="0" cellspacing="0" width="700">
<tr>
<td>
<div align="center"><a href="noticias.htm" onClick="MM_nbGroup('down','group1','noticias','../pics/noticias.gif',1)" onMouseOver="MM_nbGroup('over','noticias','../pics/noticiaslink.gif','../pics/noticiaslink.gif',1)" onMouseOut="MM_nbGroup('out')" target="contentframe"><img name="noticias" src="../pics/noticias.gif" border="0" onLoad=""></a></div>
</td>
<td>
<div align="center"><a href="bio.htm" onClick="MM_nbGroup('down','group1','bio','../pics/bio.gif',1)" onMouseOver="MM_nbGroup('over','bio','../pics/biolink.gif','../pics/biolink.gif',1)" onMouseOut="MM_nbGroup('out')" target="contentframe"><img name="bio" src="../pics/bio.gif" border="0" onLoad=""></a></div>
</td>
<td>
<div align="center"><a href="america.htm" onClick="MM_nbGroup('down','group1','america','../pics/america.gif',1)" onMouseOver="MM_nbGroup('over','america','../pics/americalink.gif','../pics/americalink.gif',1)" onMouseOut="MM_nbGroup('out')" target="contentframe"><img name="america" src="../pics/america.gif" border="0" onLoad=""></a></div>
</td>
<td>
<div align="center"><a href="alicia.htm" onClick="MM_nbGroup('down','group1','alicia','../pics/alicia.gif',1)" onMouseOver="MM_nbGroup('over','alicia','../pics/alicialink.gif','../pics/alicialink.gif',1)" onMouseOut="MM_nbGroup('out')" target="contentframe"><img name="alicia" src="../pics/alicia.gif" border="0" onLoad=""></a></div>
</td>
<td>
<div align="center"><a href="cuandosehabladeti.htm" onClick="MM_nbGroup('down','group1','cuandosehabla deti','../pics/cuando.gif',1)" onMouseOver="MM_nbGroup('over','cuandosehabladeti' ,'../pics/cuandolink.gif','../pics/cuandolink.gif',1)" onMouseOut="MM_nbGroup('out')" target="contentframe"><img name="cuandosehabladeti" src="../pics/cuando.gif" border="0" onLoad=""></a></div>
</td>
<td>
<div align="center"><a href="malu.htm" onClick="MM_nbGroup('down','group1','malu','../pics/malu.gif',1)" onMouseOver="MM_nbGroup('over','malu','../pics/malulink.gif','../pics/malulink.gif',1)" onMouseOut="MM_nbGroup('out')" target="contentframe"><img name="malu" src="../pics/malu.gif" border="0" onLoad=""></a></div>
</td>
<td>
<div align="center"><a href="cabalum.htm" onClick="MM_nbGroup('down','group1','cabalum','../pics/cabalum.gif',1)" onMouseOver="MM_nbGroup('over','cabalum','../pics/cabalumlink.gif','../pics/cabalumlink.gif',1)" onMouseOut="MM_nbGroup('out')" target="contentframe"><img name="cabalum" src="../pics/cabalum.gif" border="0" onLoad=""></a></div>
</td>
<td>
<div align="center"><a href="contacto.htm" onClick="MM_nbGroup('down','group1','contacto','../pics/contacto.gif',1)" onMouseOver="MM_nbGroup('over','contacto','../pics/contactolink.gif','../pics/contactolink.gif',1)" onMouseOut="MM_nbGroup('out')" target="contentframe"><img name="contacto" src="../pics/contacto.gif" border="0" onLoad=""></a></div>
</td>
<td>
<div align="center"><a href="links.htm" onClick="MM_nbGroup('down','group1','links','../pics/links.gif',1)" onMouseOver="MM_nbGroup('over','links','../pics/linkslink.gif','../pics/linkslink.gif',1)" onMouseOut="MM_nbGroup('out')" target="contentframe"><img name="links" src="../pics/links.gif" border="0" onLoad=""></a></div>
</td>
</tr>
</table>
</div>
Después de comprobar que el munú no cargaba en el iframe añadí a cada enlace la etiqueta target="contentframe" y siguió sin funcionar. La función fue el último añadido pero el maldito menú sigue cargando en la página como si la etiqueta fuera "_self"
Alguien tiene idea de por qué no funciona?