Problema con código javascript

He encontrado un código javascript para crear tooltips. Funciona en todos los navegadores que he probado (explorer, opera e incluso konqueror). Sin embargo, no consigo que funcione en netscape ni en mozilla firefox. Te remito el código a ver si detectas tu el fallo. Gracias de antemano.
En el head:
<script language="Javascript">
<!--
var ie = document.all ? 1 : 0
var ns = document.layers ? 1 : 0
if(ns){doc = "document."; sty = ""}
if(ie){doc = "document.all."; sty = ".style"}
var initialize = 0
var Ex, Ey, topColor, subColor, ContentInfo
if(ie){
Ex = "event.x"
Ey = "event.y"
topColor = "#9999FF"
subColor = "#9999FF"
}
if(ns){
Ex = "e.pageX"
Ey = "e.pageY"
window.captureEvents(Event.MOUSEMOVE)
window.onmousemove=overhere
topColor = "#9999FF"
subColor = "#9999FF"
}
function MoveToolTip(layerName, FromTop, FromLeft, e){
if(ie){eval(doc + layerName + sty + ".top = " + (eval(FromTop) + document.body.scrollTop))}
if(ns){eval(doc + layerName + sty + ".top = " + eval(FromTop))}
eval(doc + layerName + sty + ".left = " + (eval(FromLeft) + 15))
}
function ReplaceContent(layerName){
if(ie){document.all[layerName].innerHTML = ContentInfo}
if(ns){
with(document.layers[layerName].document)
{
open();
write(ContentInfo);
close();
}
}
}
function Activate(){initialize=1}
function deActivate(){initialize=0}
function overhere(e){
if(initialize){
MoveToolTip("ToolTip", Ey, Ex, e)
eval(doc + "ToolTip" + sty + ".visibility = 'visible'")
}
else{
MoveToolTip("ToolTip", 0, 0)
eval(doc + "ToolTip" + sty + ".visibility = 'hidden'")
}
}
function EnterContent(layerName, TTitle, TContent){
ContentInfo = '<table border="0" width="150" cellspacing="0" cellpadding="0">'+
'<tr><td width="100%" bgcolor="#333399">'+
'<table border="0" width="100%" cellspacing="1" cellpadding="0">'+
'<tr><td width="100%" bgcolor='+topColor+'>'+
'<table border="0" width="90%" cellspacing="0" cellpadding="0" align="center">'+
'<tr><td width="100%">'+
'<font class="tooltiptitle"> '+TTitle+'</font>'+
'</td></tr>'+
'</table>'+
'</td></tr>'+
'<tr><td width="100%" bgcolor='+subColor+'>'+
'<table border="0" width="90%" cellpadding="0" cellspacing="1" align="center">'+
'<tr><td width="100%">'+
'<font class="tooltipcontent">'+TContent+'</font>'+
'</td></tr>'+
'</table>'+
'</td></tr>'+
'</table>'+
'</td></tr>'+
'</table>';
ReplaceContent(layerName)
}
//-->
</script>
En el body:
<body bgcolor="#C4D6C0" topmargin="0" onmousemove="overhere()">
<div id="ToolTip"></div>
</body>
En cada enlace:
onMouseover="EnterContent('ToolTip','B.O.E.','Páxina do Boletín Oficial do Estado'); Activate();" onMouseout="deActivate()"
1

1 respuesta

Respuesta
1
Exactamente, hace referencia a netscape, no a mozilla...
Es decir. El código asume que el navegador va a ser o compatible con explorer (ie) o con netscape (ns), pero parece ser que mozilla (firefox) no es compatible con ninguno de los dos.
Y digo "compatible" en el sentido de que el código funcione en ese navegador.
El problema es que el código esta preparado para funcionar en ie o ns (como puedes comprobar en el propio código), de modo que hay variables que no acaban de tener valores si no se detecta el navegador como firefox, por ejemplo.
Me temo que este error afecta a todo el código, de modo que tal vez seria más sencillo encontrar otro código que lo haga que no modificar este.
Si quieres entrar a modificarlo, te sugeriría que siguieras las especificaciones del w3c y usaras DOM para poner en la capa que aparece el contenido adecuado (aunque puede resultar más engorroso).
Si te atascas en alguna cosa tal pueda ayudarte, pero no puedo hacértelo yo, no tengo tiempo y tendría que cobrarte ;D jejejeje

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas