Foros del Web » Creando para Internet » HTML »

Problemas con Javascript y DOCTYPE

Estas en el tema de Problemas con Javascript y DOCTYPE en el foro de HTML en Foros del Web. Hola, Tengo un código en Javascript para mostrar una imagen al poner el mouse sobre un element, en mi caso es un enlace. Todo funciona ...
  #1 (permalink)  
Antiguo 11/08/2010, 11:06
 
Fecha de Ingreso: febrero-2010
Mensajes: 22
Antigüedad: 7 años, 10 meses
Puntos: 0
Problemas con Javascript y DOCTYPE

Hola,

Tengo un código en Javascript para mostrar una imagen al poner el mouse sobre un element, en mi caso es un enlace.

Todo funciona correctamente excepto cuando en mi página tengo la siguiente etiqueta:

Código:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
Cuando tengo esa línea en mi página no me jala el javascript en Firefox 3.6.8 y si en funciona en IExplorer 8. Si quito la línea me jala perfectamente el javascript en ambos navegadores peroooooo no me reconoce varios estilos (CSS) en mi página :(

Lo que necesito es tener el DOCTYPE y que me funcione el Javascript en FireFox.

El código en javascript es el siguiente:

Código:
Xoffset= -60; // modify these values to ...	
Yoffset= 20; // change the popup position.
var old,skn,iex=(document.all),yyy=-1000;
var ns4=document.layers
var ns6=document.getElementById&&!document.all
var ie4=document.all
if (ns4)
	skn=document.dek
else if (ns6)
	skn=document.getElementById("dek").style
else if (ie4)
	skn=document.all.dek.style
if(ns4)
	document.captureEvents(Event.MOUSEMOVE);
else{
	skn.visibility="visible"
	skn.display="none"
}
document.onmousemove=get_mouse;	


function popup(msg,bak){
	var content="<TABLE WIDTH=100 CELLPADDING=2 CELLSPACING=0 "+
	"BGCOLOR="+bak+"><TD ALIGN=center><FONT COLOR=black SIZE=2>"+msg+"</FONT></TD></TABLE>";
	yyy=Yoffset;
	if(ns4){
		skn.document.write(content);
		skn.document.close();
		skn.visibility="visible";
	}
	if(ns6){
		document.getElementById("dek").innerHTML=content;skn.display=''
	}
	if(ie4){
		document.all("dek").innerHTML=content;skn.display=''
	}
}

function get_mouse(e){
	var x=(ns4||ns6)?e.pageX:event.x+document.body.scrollLeft;
	skn.left=x+Xoffset;
	var y=(ns4||ns6)?e.pageY:event.y+document.body.scrollTop;
	skn.top=y+yyy;
}

function kill(){
	yyy=-1000;
	if(ns4){
		skn.visibility="hidden";
	}
	else if (ns6||ie4)
		skn.display="none"
}
Espero me puedan ayudar.

Saludos.
  #2 (permalink)  
Antiguo 11/08/2010, 11:12
 
Fecha de Ingreso: agosto-2010
Ubicación: Madrid
Mensajes: 53
Antigüedad: 7 años, 4 meses
Puntos: 1
Respuesta: Problemas con Javascript y DOCTYPE

Tienes que agregar las unidades de medida. Los doctype son muy rigurosos con ello.


function get_mouse(e){
var x=(ns4||ns6)?e.pageX:event.x+document.body.scrollL eft;
skn.left=x+Xoffset + "px";
var y=(ns4||ns6)?e.pageY:event.y+document.body.scrollT op;
skn.top=y+yyy + "px";
}

Te lo he resaltado con color azul! espero que te funcione ;)
Y claro está, dejando el DOCTYPE que tienes.
  #3 (permalink)  
Antiguo 11/08/2010, 11:16
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 10 años, 5 meses
Puntos: 1567
Respuesta: Problemas con Javascript y DOCTYPE

linkzda:

en el firefox, borra la cache y el historial completos, recarga la página y utiliza la consola de errores a ver que es lo que te indica.
Generalmente es al revés, Firefox es mucho más permisivo que IE.

saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #4 (permalink)  
Antiguo 11/08/2010, 11:36
 
Fecha de Ingreso: febrero-2010
Mensajes: 22
Antigüedad: 7 años, 10 meses
Puntos: 0
Respuesta: Problemas con Javascript y DOCTYPE

Hola,

Gracias Gashe y emprear.

Seguí ambos consejos y ahora ya funciona al 100 el código.

Saludos y buen día.

Etiquetas: doctype, javascript
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:33.