• Publicidad

¿Qué está mal en esta línea?

Discute todo acerca de JavaScript así como DHTML o la tecnología AJAX.

¿Qué está mal en esta línea?

Notapor erml_ » 2007-06-19 13:02 @585

Saludos

Tengo una función 'x' hecha en JavaScript, recibe un valor, y se encuentra en el fichero 'funciones.js'.
Intento llamar a la función que les mencioné, desde una página 'y.html' usando la siguiente línea:

Sintáxis: [ Descargar ] [ Ocultar ]
  1. <a href="./directorio/funciones.js" onclick="x(89);" >-FUNCION X-</a> 


Al dar clic en el vínculo, quiero que se ejecute la función x, pero en su lugar solo me muestra todo el código del fichero 'funciones.js'. Coloqué un alert() dentro de la función 'x' para indicar que ha llegado a la función. Sí funciona ese alert, pero inmediatamente después me muestra todo el contenido del fichero.

¿Qué estoy haciendo mal?

Gracias y hasta pronto.
erml_
Perlero nuevo
Perlero nuevo
 
Mensajes: 5
Registrado: 2007-05-30 17:08 @755

Publicidad

Notapor explorer » 2007-06-19 16:23 @724

Se supone que cuando se llega a esa línea, funciones.js ha sido parseado por el cliente web porque habrás puesto líneas antes una línea del tipo siguiente:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
<script language="javascript" src="./directorio/funciones.js"></script>
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


De esa forma, el motor de JavaScript podrá saber dónde está definida la función x().

Pero otro tema distinto es la forma de invocarla. Usas una marca <a>, que por resultado es el 'salto' a otra página. Y pones que ese salto sea a la propia página funciones.js.

Lo que ocurre es: Ocurre el evento OnClick que llama a la función x(), y a continuación, el cliente web 'salta' a funciones.js.

Hay varias formas de evitarlo.
* En el atributo src del <a>, poner '#' (sin las comillas). De esa manera sigue siendo un enlace, pero no 'saltará' a ninguna página.
* En el atributo OnClick, modificarlo para que devuelva un valor falso:
onclick="x(89); return false;" Esto tiene como efecto colateral que el efecto de 'salto' tampoco se produce.
* Usar otro elemento que dispare eventos del ratón pero sin efectos secundarios (no usar <a>).
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor erml_ » 2007-06-25 17:40 @778

saludos explorer.

Así es, agregando "return false" ya no muestra el contenido de la página y entra a la función que necesito.

Gracias por la ayuda. Hasta pronto.
erml_
Perlero nuevo
Perlero nuevo
 
Mensajes: 5
Registrado: 2007-05-30 17:08 @755


Volver a JavaScript

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 6 invitados

cron