Tengo una web que necesito que tenga un menú dinamico y otro que sea para poner tooltips. Mi problema viene de que no puedo poner los dos scripts juntos, he intentado modificar variables para que sean completamente diferentes y ni con esas consigo que funcionen las dos cosas a la vez.si solo pongo uno de los dos funciona sin problemas, pero si pongo los dos en la misma página uno de los dos (el de los tooltips) falla.
Alguien me puede ayudar o decir como puedo poner los dos juntos sin que se pisen el uno al otro????????? Os pego los scripts para ver si me podéis hechar una manita... MUCHISIMAS GRACIAS DE ANTEMANO!!
Código HTML:
<script language="javascript" type="text/javascript"> var resultado; function obtenerid(dentrodeque){ frase=document.getElementById(dentrodeque).innerHTML; resultado=new Array(); resultado=frase.match(/\b\s+id=[^>\s]+\b/g); for(p=0;p<resultado.length;p++){ resultado[p]=resultado[p].split('"').join(''); resultado[p]=resultado[p].split('id=').join(''); resultado[p]=resultado[p].split(' ').join(''); } } function mostrar(que){ for(p=0;p<resultado.length;p++){ if(que==resultado[p]){ if(document.getElementById(que).style.display=='none'){document.getElementById(que).style.display='block';}else{document.getElementById(que).style.display='none';} }else{ eval("document.getElementById('"+resultado[p]+"').style.display='none'"); } } } function ir(url){ window.location=url; } /**Akí se separan los dos códigos, el de arriba me funciona pero el de abajo se anula.*/ /*********************************************** * Image w/ description tooltip- By Dynamic Web Coding (www.dyn-web.com) * Copyright 2002-2007 by Sharon Paine * Visit Dynamic Drive at http://www.dynamicdrive.com/ for full source code ***********************************************/ /* IMPORTANT: Put script after tooltip div or put tooltip div just before </BODY>. */ var dom = (document.getElementById) ? true : false; var ns5 = (!document.all && dom || window.opera) ? true: false; var ie5 = ((navigator.userAgent.indexOf("MSIE")>-1) && dom) ? true : false; var ie4 = (document.all && !dom) ? true : false; var nodyn = (!ns5 && !ie4 && !ie5 && !dom) ? true : false; var origWidth, origHeight; // avoid error of passing event object in older browsers if (nodyn) { event = "nope" } /////////////////////// CUSTOMIZE HERE //////////////////// // settings for tooltip // Do you want tip to move when mouse moves over link? var tipFollowMouse= true; // Be sure to set tipWidth wide enough for widest image var tipWidth= 160; var offX= 20; // how far from mouse to show tip var offY= 12; var tipFontFamily= "Verdana, arial, helvetica, sans-serif"; var tipFontSize= "8pt"; // set default text color and background color for tooltip here // individual tooltips can have their own (set in messages arrays) // but don't have to var tipFontColor= "#000000"; var tipBgColor= "#DDECFF"; var tipBorderColor= "#000080"; var tipBorderWidth= 3; var tipBorderStyle= "ridge"; var tipPadding= 4; // tooltip content goes here (image, description, optional bgColor, optional textcolor) var messages = new Array(); // multi-dimensional arrays containing: // image and text for tooltip // optional: bgColor and color to be sent to tooltip <?php $n=($_GET["_pagi_pg"]*4); $_pagi_tooltip = "select id_producto from productos where id_subcategoria='".$_GET["id_subcategoria"]."' and activo='si' order by descripcion limit 0,4"; $result_tooltip=mysql_query($_pagi_tooltip, $link)or die(mysql_error()); while($row_tooltip = mysql_fetch_array($result_tooltip)){ $id_producto_tooltip = $row_tooltip["id_producto"]; //fotografia if (file_exists("../imagenes/fotos_productos/$id_producto_tooltip.jpg")) { $imagen_tooltip = "../imagenes/fotos_productos/$id_producto_tooltip.jpg"; } elseif (file_exists("../imagenes/fotos_productos/$id_producto_tooltip.JPG")) { $imagen_tooltip = "../imagenes/fotos_productos/$id_producto_tooltip.JPG"; } elseif (file_exists("../imagenes/fotos_productos/$id_producto_tooltip.gif")) { $imagen_tooltip = "../imagenes/fotos_productos/$id_producto_tooltip.gif"; } elseif (file_exists("../imagenes/fotos_productos/$id_producto_tooltip.GIF")) { $imagen_tooltip = "../imagenes/fotos_productos/$id_producto_tooltip.GIF"; } elseif (file_exists("../imagenes/fotos_productos/$id_producto_tooltip.bmp")) { $imagen_tooltip = "../imagenes/fotos_productos/$id_producto_tooltip.bmp"; } elseif (file_exists("../imagenes/fotos_productos/$id_producto_tooltip.BMP")) { $imagen_tooltip = "../imagenes/fotos_productos/$id_producto_tooltip.BMP"; } else { $imagen_tooltip = "../imagenes/nofoto2.gif"; } $imagen_tooltip=htmlspecialchars($imagen_tooltip);?> messages[<?php echo $n++; ?>] = new Array('<?php echo $imagen_tooltip; ?>','texto',"#FFFFFF"); <?php } ?> //////////////////// END OF CUSTOMIZATION AREA /////////////////// // preload images that are to appear in tooltip // from arrays above if (document.images) { var theImgs = new Array(); for (var i=0; i<messages.length; i++) { theImgs[i] = new Image(); theImgs[i].src = messages[i][0]; } } // to layout image and text, 2-row table, image centered in top cell // these go in var tip in doTooltip function // startStr goes before image, midStr goes between image and text var startStr = '<table width="' + tipWidth + '"><tr><td align="center" width="100%"><img src="'; var midStr = '" border="0"></td></tr><tr><td valign="top">'; var endStr = '</td></tr></table>'; //////////////////////////////////////////////////////////// // initTip - initialization for tooltip. // Global variables for tooltip. // Set styles // Set up mousemove capture if tipFollowMouse set true. //////////////////////////////////////////////////////////// var tooltip, tipcss; function initTip() { if (nodyn) return; tooltip = (ie4)? document.all['tipDiv']: (ie5||ns5)? document.getElementById('tipDiv'): null; tipcss = tooltip.style; if (ie4||ie5||ns5) { // ns4 would lose all this on rewrites tipcss.width = tipWidth+"px"; tipcss.fontFamily = tipFontFamily; tipcss.fontSize = tipFontSize; tipcss.color = tipFontColor; tipcss.backgroundColor = tipBgColor; tipcss.borderColor = tipBorderColor; tipcss.borderWidth = tipBorderWidth+"px"; tipcss.padding = tipPadding+"px"; tipcss.borderStyle = tipBorderStyle; } if (tooltip&&tipFollowMouse) { document.onmousemove = trackMouse; } } window.onload = initTip; ///////////////////////////////////////////////// // doTooltip function // Assembles content for tooltip and writes // it to tipDiv ///////////////////////////////////////////////// var t1,t2; // for setTimeouts var tipOn = false; // check if over tooltip link function doTooltip(evt,num) { if (!tooltip) return; if (t1) clearTimeout(t1); if (t2) clearTimeout(t2); tipOn = true; // set colors if included in messages array if (messages[num][2]) var curBgColor = messages[num][2]; else curBgColor = tipBgColor; if (messages[num][3]) var curFontColor = messages[num][3]; else curFontColor = tipFontColor; if (ie4||ie5||ns5) { var tip = startStr + messages[num][0] + midStr + '<span style="font-family:' + tipFontFamily + '; font-size:' + tipFontSize + '; color:' + curFontColor + ';">' + messages[num][1] + '</span>' + endStr; tipcss.backgroundColor = curBgColor; tooltip.innerHTML = tip; } if (!tipFollowMouse) positionTip(evt); else t1=setTimeout("tipcss.visibility='visible'",100); } var mouseX, mouseY; function trackMouse(evt) { standardbody=(document.compatMode=="CSS1Compat")? document.documentElement : document.body //create reference to common "body" across doctypes mouseX = (ns5)? evt.pageX: window.event.clientX + standardbody.scrollLeft; mouseY = (ns5)? evt.pageY: window.event.clientY + standardbody.scrollTop; if (tipOn) positionTip(evt); } ///////////////////////////////////////////////////////////// // positionTip function // If tipFollowMouse set false, so trackMouse function // not being used, get position of mouseover event. // Calculations use mouseover event position, // offset amounts and tooltip width to position // tooltip within window. ///////////////////////////////////////////////////////////// function positionTip(evt) { if (!tipFollowMouse) { standardbody=(document.compatMode=="CSS1Compat")? document.documentElement : document.body mouseX = (ns5)? evt.pageX: window.event.clientX + standardbody.scrollLeft; mouseY = (ns5)? evt.pageY: window.event.clientY + standardbody.scrollTop; } // tooltip width and height var tpWd = (ie4||ie5)? tooltip.clientWidth: tooltip.offsetWidth; var tpHt = (ie4||ie5)? tooltip.clientHeight: tooltip.offsetHeight; // document area in view (subtract scrollbar width for ns) var winWd = (ns5)? window.innerWidth-20+window.pageXOffset: standardbody.clientWidth+standardbody.scrollLeft; var winHt = (ns5)? window.innerHeight-20+window.pageYOffset: standardbody.clientHeight+standardbody.scrollTop; // check mouse position against tip and window dimensions // and position the tooltip if ((mouseX+offX+tpWd)>winWd) tipcss.left = mouseX-(tpWd+offX)+"px"; else tipcss.left = mouseX+offX+"px"; if ((mouseY+offY+tpHt)>winHt) tipcss.top = winHt-(tpHt+offY)+"px"; else tipcss.top = mouseY+offY+"px"; if (!tipFollowMouse) t1=setTimeout("tipcss.visibility='visible'",100); } function hideTip() { if (!tooltip) return; t2=setTimeout("tipcss.visibility='hidden'",100); tipOn = false; } document.write('<div id="tipDiv" style="position:absolute; visibility:hidden; z-index:100"></div>') </script>