Avatar Image
User 1003828
Usuario habitual
Usuario habitual

Hola,

He creado un menú desplegable. Hasta ahí todo bien. Pero mi duda viene cuando quiero que al hacer click sobre una de las opciones, el contenido se me abra por ejemplo en una ventana nueva.
Resumiendo: ¿Dónde tengo que colocar el target="_blank" en este código (para por ejemplo la url_1_1)?


Este sería el código "completo" del menú desplegable:

Cita:
<script language="javascript">
var tdColor="#000000"; // color del texto de los elementos del menu
var tdBgColor="#4A4135"; // color de fondo de los elementos del menu
var hlColor="#ffffff"; // color texto cuando puntero encima
var hlBgColor="#000000"; // color fondo cuando punetor encima
// Los mismos valores deben estar en menuNav.css

// Definicion del menu
td_1 = "Noticias"
td_1_1 = "Home"
url_1_1 = "noticias/index.htm"
td_1_2 = "Archivo"
url_1_2 = "noticias/archivo.htm"

td_2 = "Biografías"
url_2 = "http://www.elcodigo.net/tiralineas/tiralineas.html"
td_2_1 = "El grupo"
url_2_1 = "/bio/grupo.htm"
td_2_2 = "Individuales"
url_2_2 = "/bio/indi.htm"
///////NO SON NECESARIOS CAMBIOS A PARTIR DE AQUI/////////////////
var md=250;
var ti=-1;
var oTd=new Object;
oTd=null;

function doMenu(td){
clearTimeout(ti);
td.style.backgroundColor=hlBgColor;
td.style.color=hlColor;
var i;
var sT="";
var tda=new Array();
tda=td.id.split("_&quotGiño;
if(oTd!=null){
var tdo=new Array();
tdo=oTd.id.split("_&quotGiño;
for(i=1;i<tdo.length;i++){
sT+="_"+tdo;
if(tdo!=tda){
document.getElementById("td"+sT).style.backgroundColor=tdBgColor;
document.getElementById("td"+sT).style.color=tdColor;
if(document.getElementById("tbl"+sT)!=null)
document.getElementById("tbl"+sT).style.visibility="hidden";
}
}
}
oTd=td;
sT="tbl";
for(i=1;i<tda.length;i++)
sT+="_"+tda;
if(document.getElementById(sT)!=null)
document.getElementById(sT).style.visibility="visible";

}

function clearMenu(){
if(oTd!=null){
var tdo=new Array();
tdo=oTd.id.split("_&quotGiño;
var sT="";
for(var i=1;i<tdo.length;i++){
sT+="_"+tdo;
document.getElementById("td"+sT).style.backgroundColor=tdBgColor;
document.getElementById("td"+sT).style.color=tdColor;
if(document.getElementById("tbl"+sT)!=null)
document.getElementById("tbl"+sT).style.visibility="hidden";
}
oTd=null;
}
}

function runMenu(strURL){
location.href=strURL;
}

var tt="";
var sT="";
var pT=new Array();
var tA=new Array();

function getCoord(st){
tA=st.split("_&quotGiño;
if(tA.length>2){
tA=tA.slice(0,-1);
tt=tA.join("_&quotGiño;
return (document.getElementById("tbl"+tt).offsetTop+document.getElementById("td"+st).offsetTop+4)+"px;left:"+
(document.getElementById("tbl"+tt).offsetLeft+document.getElementById("td"+st).offsetWidth-2)+"px\">";
}
return (document.getElementById("mainmenu&quotGiño.offsetTop+document.getElementById("td"+st).offsetHeight-1)+"px;left:"+
(document.getElementById("mainmenu&quotGiño.offsetLeft+document.getElementById("td"+st).offsetLeft+30)+"px\">";
}


</script>
Avatar Image
User 1003828
Usuario habitual
Usuario habitual

Tendra esto algo q ver?¿?


function runMenu(strURL){
location.href=strURL;
}


Nadie me puede ayudar?Enfurruñado

tunait
Usuario habitual
Usuario habitual
Escrito originalmente por FleaBass
Tendra esto algo q ver?¿?


function runMenu(strURL){
location.href=strURL;
}


...podría ser. Dime una cosa, quieres que se abran todas en ventana nueva o sólo una?
Avatar Image
User 1003828
Usuario habitual
Usuario habitual

Bueno en ventana nueva no, en realidad me gustaría que se abrieran en un marco que se llama "contenido".
Todas no, la mayoría.

Gracias por la respuesta.

tunait
Usuario habitual
Usuario habitual

mmm... entonces habrá que hacer más manipulaciones. Así a ojo parece que el menú maneja un sólo target.

Prueba a ver si esto te funciona:

Agrega a las url algún separador, por ejemplo ||| y detrás agrega el nombre del marco sobre el que quieras cargar la url, o pones 'nueva' si quieres en ventana nueva. Si lo quieres a toda ventana (como lo hace ahora) pues no pongas nada

Ejemplo:

para cargar en marco 'contenido' la url noticias/index.htm le pides

url_1_1 = "noticias/index.htm|||contenido"

para cargar en ventana nueva le pides

url_1_1 = "noticias/index.htm|||nueva"

y para que se abra tal y como te lo está haciendo ahora pues no le agregas nada

url_1_1 = "noticias/index.htm"

y a tu función le haces estos cambios:

Codigo:

function runMenu(strURL){
if(strURL.split("|||&quotGiño.length == 1){
location.href=strURL;
}
else{
if(strURL.split("|||&quotGiño[1]=='nueva'){
window.open(strURL.split("|||&quotGiño[0])
}
else{
eval('parent.' + strURL.split("|||&quotGiño[1] + '.location.href="' + strURL.split("|||&quotGiño[0] + '"')
}
}
}


"Teóricamente" debería funcionar. Yá me contarás.

Un saludo Divertido
tunait
Usuario habitual
Usuario habitual

er... me olvidé de desactivar las caritas automáticas estas, te vuelvo a pegar el código

Codigo:

function runMenu(strURL){
if(strURL.split("|||").length == 1){
location.href=strURL;
}
else{
if(strURL.split("|||")[1]=='nueva'){
window.open(strURL.split("|||")[0])
}
else{
eval('parent.' + strURL.split("|||")[1] + '.location.href="' + strURL.split("|||")[0] + '"')
}
}
}

Avatar Image
User 1003828
Usuario habitual
Usuario habitual

Tú si que sabes!! Muchísimas gracias!! Me funciona perfecto.

GraciasGiño

ATENCIÓN: Este tema no tiene actividad desde hace más de 6 MESES,
te recomendamos abrir un nuevo tema en lugar de responder al actual
Opciones:
Ir al subforo:
Permisos:
TU NO PUEDES Escribir nuevos temas
TU NO PUEDES Responder a los temas
TU NO PUEDES Editar tus propios mensajes
TU NO PUEDES Borrar tus propios mensajes
Temas similares
TemaUsuariosRespuestasVisitasActividad
Por: , el 22/Abr/2010, 18:26
Ammpster aerialss88 GestionXls43kApr/10
Por: , el 03/Jun/2008, 05:27
bubuosorio03kJun/08
Por: , el 06/Abr/2008, 11:19
ojosalton chavp34kApr/08
Por: , el 14/Jun/2007, 18:33
Jaorcor MaIcOl chavp lombardo1965512kNov/09
Por: , el 11/Feb/2007, 13:00
Alimau EffectedCard65kFeb/07