Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > HTML, Javascript y otros
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-12-2006
Deiv Deiv is offline
Miembro
 
Registrado: jul 2005
Ubicación: La Paz - Bolivia
Posts: 364
Poder: 19
Deiv Va por buen camino
Arrow ¿Como entender el signo "?" en Java Script?

Hola,
Voy revisando algunos ejemplos de Java Script, me he tropezado con este problema, pues en la Red no encuentro mucha ayuda sobre el signo "?"
¿Como entender los códigos (trozos) de abajo?

Código PHP:
function handlerMM(e){
= (document.layers) ? e.pageX document.body.scrollLeft+event.clientX
= (document.layers) ? e.pageY document.body.scrollTop+event.clientY
flag
=1
}
 
document.onmousemove handlerMM
O este otro:
Código PHP:
  //..........
ns=(document.layers);
  
//........
var ML=(ns)?document.layers['nsMinutes'+i]:ieMinutes[i].style;
  
//..........
scrll=(ns)?window.pageYOffset:0;
  
//..........
function Mouse(evnt){
ymouse = (ns)?evnt.pageY+ClockFromMouseY-(window.pageYOffset):event.y+ClockFromMouseY;
xmouse = (ns)?evnt.pageX+ClockFromMouseX:event.x+ClockFromMouseX;
}
(
ns)?window.onMouseMove=Mouse:document.onmousemove=Mouse;
  
//......... 
- En el primer caso no veo que le pase un parámetro "e" y en el segundo tampoco el "evnt" ¿Es indiferente si en la función aparecen parámetros sin haber sido enviados al llamar a una función en Java Script?
- ¿Que hace el signo "?" en las funciones? ¿Cómo interpretarlo?

Última edición por Deiv fecha: 09-12-2006 a las 15:37:09.
Responder Con Cita
  #2  
Antiguo 09-12-2006
Avatar de JavierB
JavierB JavierB is offline
Miembro
 
Registrado: may 2003
Ubicación: Madrid
Posts: 99
Poder: 21
JavierB Va por buen camino
Hola Deiv

Es una versión abreviada de if Si se cumple la condición toma el valor que hay entre el signo de interrogación y los dos puntos, si no se cumple, toma el valor que hay a continuación de los dos puntos.

Código PHP:
= (document.layers) ? e.pageX document.body.scrollLeft+event.clientX 
Es lo mismo que poner:

Código PHP:
if (document.layers)
  
e.pageX
else
  
document.body.scrollLeft+event.clientX 
Saludos,
__________________
Lo importante no es saber, sino tener el e-mail del que sabe.
Responder Con Cita
  #3  
Antiguo 09-12-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Cita:
Empezado por Deiv
- En el primer caso no veo que le pase un parámetro "e" y en el segundo tampoco el "evnt" ¿Es indiferente si en la función aparecen parámetros sin haber sido enviados al llamar a una función en Java Script?
Fíjate que esas funciones no las vas a llamar tú, es decir, son funciones que responderán a un determinado tipo de evento. Es algo parecido a cuando codificas un prodecimiento en Delphi cuyo prototipo podría ser este:

Código Delphi [-]
procedure SeHizoClicEnElBoton(Sender: TObject);

Ese procedimiento podría asignársele al evento "OnClick" de un determinado botón, ¿verdad que sí? Puesto que el prototipo del procedimiento cumple con los requisitos para el evento "OnClick" del botón. Pero tú, normalmente, no vas a llamar al procedimiento pasándole como parámetro el "Sender" de turno, sino que será el propio "botón" el que llame a dicho procedimiento cuando se produzca su evento "OnClick", pasándole el "Sender" oportuno, es decir, el propio botón.

Pues lo que comentas arriba en JavaScript viene a ser parecido. Para el evento "OnKeyDown", por ejemplo, podrías asignar una determinada función fuera ejecutada cuando dicho evento se produzca. Pues bien, dicha función tendrá ya un parámetro que viene determinado por lo que "OnKeyDown" ofrezca... Pero yo no estoy muy puesto en JavaScript, como se puede ver.

Aquí tienes un ejemplo (www.w3schools.com) de cómo puede trabajarse con el evento "OnKeyDown". Fíjate como la función que se hará cargo del evento cuenta con un parámetro que a su vez recibirá los datos que el evento "OnKeyDown" ofrece. Fíjate también como dependiendo del navegador/cliente habrá que tratar de manera diferente dichos datos... y bienvenido al "Cross Browsing Scripting"...
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #4  
Antiguo 09-12-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Creo que no está de más aclarar que en los ejemplos que presentas, los condicionales están para distinguir un tipo de navegador de otro. En en el primer trozo de código:

Código:
function handlerMM(e){
  x = (document.layers) ? e.pageX : document.body.scrollLeft+event.clientX
  y = (document.layers) ? e.pageY : document.body.scrollTop+event.clientY
  flag=1
}
document.layers existe para Netscape pero no para IE. El efecto del condicional es valuar e.pageX en el caso de Netscape y lo demás en el caso de IE. Y hay que notar también el uso de e y event. IE maneja los eventos en la variable global event, que, siendo global, no aparece como parámetro del evento. En cambio Netscape y otros navegadores pasan el evento como parámetro.

// Saludos
Responder Con Cita
  #5  
Antiguo 10-12-2006
Deiv Deiv is offline
Miembro
 
Registrado: jul 2005
Ubicación: La Paz - Bolivia
Posts: 364
Poder: 19
Deiv Va por buen camino
Wink

Gracias, por vuestras respuestas, voy navegando en Internet y en verdad tal como dice Roman, hay que distinguir entre código IE y Netscape, Una consulta:
¿Conocen alguna Página donde diferencien o den ejemplos o una lista de comandos, propiedades, etc de IE y NetScape? Así podría estudiarlos.
Verán estoy autodidáctamente aprendiendo a construir mi página web y creo que lo estoy haciendo en forma desordenada, por ello sería bueno conocer esa diferencia que les menciono.

Última edición por Deiv fecha: 10-12-2006 a las 00:36:33.
Responder Con Cita
  #6  
Antiguo 10-12-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Creo que podrías hacerte con algún libro sobre JavaScript. En Internet, desde luego, también vas a encontrar manuales, tutoriales, artículos, páginas Web, en fin, donde poder adentrarte en el tema. Por otro lado tal vez quieras usar un programa como Aptana para trabajar con JavaScript. Al estilo Delphi te ofrecerá cierta ayuda en su editor de código: autocompletado, ayuda contextual, listas de miembros de objetos, información sobre navegadores, etc., etc.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #7  
Antiguo 10-12-2006
Deiv Deiv is offline
Miembro
 
Registrado: jul 2005
Ubicación: La Paz - Bolivia
Posts: 364
Poder: 19
Deiv Va por buen camino
Gracias "tocayo" (David),
Tus sugerencias como de otros genios siempre han sido buenas. Esto de aprender a crear una página me está tomando tiempo que hice una pausa con Delphi.
Gracias muchachos, seguiré preguntando espero no se molesten....
Responder Con Cita
  #8  
Antiguo 14-12-2006
Deiv Deiv is offline
Miembro
 
Registrado: jul 2005
Ubicación: La Paz - Bolivia
Posts: 364
Poder: 19
Deiv Va por buen camino
Hola Dec,
He instalado Aptana, pero me sale este mensaje cada vez que deseo trabajar con el programa (no tengo conexión a Internet):
Cita:
Aptana requires Firefox 1.5+ for JavaScript debugging support.
Firefox could not be found at the default locations on this computer.
If You wish to debug JavaScript, please create a debug configuration with the correct Firefox path or download it from http://www.getfirefox.com
He instalado Firefox 2.0 en mi máquina creyendo que con esto estaba la solución, pero no puedo evitar ese mensaje. ¿Como evito ese mensaje? ¿es importante?
Responder Con Cita
  #9  
Antiguo 14-12-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Personalmente, omití el mensaje de que hablas, que también a mí me "salió". Se supone que Aptana necesita de Firefox 1.5 para depurar el JavaScript. Yo tengo instalada la versión 2.0 (como tú). Instalé Aptana omitiendo el mensaje que refieres y bueno, lo único que acaso no pueda utilizar sea el depurador que trae incorporado, pero, yo más bien te hablaba del editor de código, de la ayuda que este pudiera proporcionarte.

Así que instala Aptana pasando por encima de ese mensaje. O instala Firefox 1.5 (ignoro si podrás tener dos versiones de Firefox en el mismo sistema) y en todo caso tira hacia adelante.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #10  
Antiguo 15-12-2006
Deiv Deiv is offline
Miembro
 
Registrado: jul 2005
Ubicación: La Paz - Bolivia
Posts: 364
Poder: 19
Deiv Va por buen camino
Wink

Yo también lo omito, y trabaja muy bien, pero en si lo que más me interesaba era eso precisamente el depurador de JavaScript, entiendo o supongo que ese depurador debe trabajar como en Delphi con la tecla F7?, pues ahí apuntaba ya que con este pensé que podía depurar algunos scripts, y encontrar posibles errores mios durante la confección de los mismos. De todas maneras con un P2P estoy bajando el Firefox 1.5, desinstalaré la v2.0 y veremos como trabaja.
Un saludo
Responder Con Cita
  #11  
Antiguo 15-12-2006
Deiv Deiv is offline
Miembro
 
Registrado: jul 2005
Ubicación: La Paz - Bolivia
Posts: 364
Poder: 19
Deiv Va por buen camino
Bueno he descargado Firefox 1.5.0.7, y no obtuve ningún resultado, pero leyendo bien el mensaje que aparece:

Cita:
If You wish to debug JavaScript, please create a debug configuration with the correct Firefox path
He ingresado al Menú Run-Debug... y he creado un: New_configuration, en la pestaña Main, elegí Browse y seleccioné el EXE del FireFox instalado en: C:\Archivos de programa\Mozilla Firefox\firefox.exe, luego hice click en el botón "Debug" y me lanzó un mensaje de todo OK, y ahora ya no aparece más dicho mensaje.

Me preguntaba si así de sencillo estaba, tal vez podía haberlo hecho con FireFox 2.0, volví a desinstalar la v1.5.0.7 para instalar la v2.0 y seguí los mismos pasos, si bien ya no tengo el Mensaje, no estoy convencido si la v2.0 aceptó "JavaScript debugging support", por lo que amigo dec te pido que compruebes estos pasos con tu versión ya que tu la tienes ahí nuevita, y luego me comentas?
Responder Con Cita
  #12  
Antiguo 15-12-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Es que no sé muy bien a qué te refires. Lo cierto es que instalé Aptana vía Eclipse, y lo hize omitiendo el "soporte para la depuración"... ahora entro en las opciones de Aptana en Eclipse y no veo dónde puedo mirar eso que dices... la verdad. Aunque, desde luego te digo que yo no utilizo el "depurador de JavaScript" en Aptana. Digamos que para el JavaScript que necesito me basto con la extensión FireBug para FireFox.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #13  
Antiguo 15-12-2006
Deiv Deiv is offline
Miembro
 
Registrado: jul 2005
Ubicación: La Paz - Bolivia
Posts: 364
Poder: 19
Deiv Va por buen camino
Bueno, como Yo no tengo conexión a Internet, Yo lo que hice es decargar Aptana, e instalar, luego para solucionar ese mensaje leí lo que coloqué en quote y solo me fuí al Menú de Aptana a la opción RUN, y ahí lo configuré Debug.
Bueno en fin solo era una curiosidad.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Ventana MDI, "Siempre visible" y "Pantalla completa" ixMike API de Windows 7 11-04-2007 18:36:55
"ChequeaEsto" elegido el futuro "Killer CLubDelphi" mamcx Noticias 51 31-10-2006 20:56:32
porque no me reconoce los caracteres "*" ni "%" cuando filtro mrmago Conexión con bases de datos 10 27-01-2006 04:21:16
Añadir signo "+" a una variable flotante Ricsato Varios 2 18-06-2005 00:53:03


La franja horaria es GMT +2. Ahora son las 18:23:38.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi