• Lunes 23 de Diciembre de 2024, 19:07

Autor Tema:  Posible incoherencia en JS?  (Leído 4256 veces)

Ryusaki N

  • Miembro activo
  • **
  • Mensajes: 76
    • Ver Perfil
Posible incoherencia en JS?
« en: Sábado 9 de Mayo de 2009, 03:21 »
0
Hola a todos. Tengo un menu html/css:

Código: Text
  1. <div align="center" id="container">
  2.  <ul id="nav-bar">
  3.   <li><a href="#" onclick="next();">seccion1</a></li>
  4.   <li><a href="#" onclick="">seccion2</a></li>
  5.   <li><a href="#" onclick="">Seccion3</a></li>
  6.   <li><a href="#" onclick="">Seccion4</a></li>
  7.   <li><a href="#" onclick="">Seccion5</a></li>
  8.  </ul>
  9. </div>
  10.  

Y un documento Javascript anexado:

Código: Text
  1. function next(){
  2.     location.href="seccion1.php";
  3. }
  4.  

Como pueden ver  la funcion next() lo que hace (Teoricamente) es redireccionar al usuario a la seccion1 una vez se hace click sobre la parte del menu correspondiente a esta seccion, lo extraño es que doy click mil veces y por mas que la URL cambia sigo en la misma pagina. Saben que puede estar mal?
C/C++/C#/Java/Python dev. Frontend web developer. ASP.NET && PHP, ASM x86
No tengo vida social y me siento orgulloso!! 1000% Geek.

JrcsDev

  • Miembro MUY activo
  • ***
  • Mensajes: 245
  • Nacionalidad: ve
    • Ver Perfil
    • http://codigo7.wordpress.com/
Re: Posible incoherencia en JS?
« Respuesta #1 en: Sábado 9 de Mayo de 2009, 20:24 »
0
Es muy probable que tengas un error en JavaScript... Estás incluyendo el archivo javascript en tu html? Pega el código donde incluyes el archivo js para ver... Cuando hay algun error en Js, no se ejecuta ninguna parte del código.
Sígueme en Twitter]
Donar comida a los chicos necesitados!
Todo lo puedo en Cristo que me fortalece...

JrcsDev

  • Miembro MUY activo
  • ***
  • Mensajes: 245
  • Nacionalidad: ve
    • Ver Perfil
    • http://codigo7.wordpress.com/
Re: Posible incoherencia en JS?
« Respuesta #2 en: Sábado 9 de Mayo de 2009, 20:32 »
0
Es muy probable que tengas un error en JavaScript... Estás incluyendo el archivo javascript en tu html? Pega el código donde incluyes el archivo js para ver... Cuando hay algun error en Js, no se ejecuta ninguna parte del código.
Sígueme en Twitter]
Donar comida a los chicos necesitados!
Todo lo puedo en Cristo que me fortalece...

locazopro

  • Miembro activo
  • **
  • Mensajes: 51
    • Ver Perfil
Re: Posible incoherencia en JS?
« Respuesta #3 en: Sábado 9 de Mayo de 2009, 20:34 »
0
claro, debes tener un error al poner código JS en tu página, mira, deberia ser algo asi:

Código: Text
  1. <html>
  2. <head>
  3. <script type="text/javascript">
  4. function next(){
  5.     location.href="seccion1.php";
  6. }
  7. </script>
  8. </head>
  9. <body>
  10.   <div align="center" id="container">
  11.      <ul id="nav-bar">
  12.     <li><a href="#" onclick="next();">seccion1</a></li>
  13.     <li><a href="#" onclick="">seccion2</a></li>
  14.     <li><a href="#" onclick="">Seccion3</a></li>
  15.     <li><a href="#" onclick="">Seccion4</a></li>
  16.     <li><a href="#" onclick="">Seccion5</a></li>
  17.      </ul>
  18.    </div>
  19. </body>
  20. </html>
  21.  

claro que con todo lo demás que tengas, o también si es que a next lo tienes en un archivo .js externo

saludos

Ryusaki N

  • Miembro activo
  • **
  • Mensajes: 76
    • Ver Perfil
Re: Posible incoherencia en JS?
« Respuesta #4 en: Sábado 9 de Mayo de 2009, 23:02 »
0
En efecto, tengo el JS en un archivo aparte entonces lo que hago es:

Código: Text
  1. <script language="Javascript" src="donde esta el documento"></script>
  2.  

No me gustaria mostrar el codigo que da la inteligencia en la pagina HTML por eso es que lo hago asi.
C/C++/C#/Java/Python dev. Frontend web developer. ASP.NET && PHP, ASM x86
No tengo vida social y me siento orgulloso!! 1000% Geek.

goldenscriptup

  • Miembro activo
  • **
  • Mensajes: 40
  • Nacionalidad: mx
    • Ver Perfil
Re: Posible incoherencia en JS?
« Respuesta #5 en: Domingo 10 de Mayo de 2009, 10:36 »
0
he encontrado tu problema.

En el head escribe lo siguiente, te recomiendo que debes de usar language="Javascript" usa type="text/javascript", como esta mostrado en el ejemplo. Actualmente me parece que el tag type es el que se usa.

Código: Text
  1. <script type="text/javascript" src="goldenscriptup.js"></script>
  2.  

y en tu archivo del JavaScript

Código: Text
  1.  
  2. function next(){
  3.        location.href= "http://localhost/paginas/seccion1.php"
  4. }
  5.  

Debes de agregar el http:// siempre por que si no no se ejecuta, tienes que agregar la ruta
absoluta de la pagina que quieres abrir.

Si haces esto NO funciona.
Código: Text
  1. location.href= "www.google.com.mx"
  2.  

La forma correcta es. Esto SI funciona.
Código: Text
  1. //Tiene el http://
  2. location.href= "http://www.google.com.mx"
  3.  

Espero que te sea de utilidad  ;)

Saludos!
"Sorprendedme retadme desadfiadme y desafio a vos" :huh:

F_Tanori

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re: Posible incoherencia en JS?
« Respuesta #6 en: Domingo 10 de Mayo de 2009, 16:34 »
0
Cita de: "goldenscriptup"
he encontrado tu problema.

En el head escribe lo siguiente, te recomiendo que debes de usar language="Javascript" usa type="text/javascript", como esta mostrado en el ejemplo. Actualmente me parece que el tag type es el que se usa.

Si bien eso es lo correcto no es motivo para que no funcione el codigo mostrado, se pude declarar un script

Código: Text
  1.  
  2. <script>
  3. function next(){
  4.      location.href="seccion1.php";
  5.  }
  6. </script>
  7.  

Al no especificar nada el navegador usa por default JS (estandar) aun cuando existan otros, tambien es posible que el codigo funcione a un fuera de las cabeceras, en teoria es una mala practica pero no es motivo para que no funcione

Cita de: "goldenscriptup"
Código: Text
  1. <script type="text/javascript" src="goldenscriptup.js"></script>
  2.  

y en tu archivo del JavaScript

Código: Text
  1.  
  2. function next(){
  3.        location.href= "http://localhost/paginas/seccion1.php"
  4. }
  5.  

Debes de agregar el http:// siempre por que si no no se ejecuta, tienes que agregar la ruta
absoluta de la pagina que quieres abrir.



Si haces esto NO funciona.
Código: Text
  1. location.href= "www.google.com.mx"
  2.  

La forma correcta es. Esto SI funciona.
Código: Text
  1. //Tiene el http://
  2. location.href= "http://www.google.com.mx"
  3.  

Espero que te sea de utilidad  ;)

Saludos!

En este caso hablamos de URL no de rutas (PATH), y aunque lo que mencionas es correcto, no es del todo no es necesario usar el protocolo , (la url absoluta) , si el archivo se encuentra en el mismo domino en tu ejemplo utilizas google, que seria un sitio externo por eso hay que indicarlo de manera absoluta, de no hacerlo el navegador entiende que es dentro del mismo sitio ejemplo:

Código: Text
  1. <a href="#" onclick="www.google.com">seccion1</a>
  2.  

el enlace lo hara a nuestro sitio

http://www.midominioencuestion.com/www.google.com

en cambio

Código: Text
  1.  
  2. <a href="#" onclick="http://www.google.com">seccion1</a>
  3.  

el navegador entiende que es un enlace externo.


Los codigos mostrados son funcionales y ya que no quieres mostrarnos tu JS (donde esta el error, quizas con otra funcion, un caracter  no valido, una llave mal usada etc) correlo en Firefox (FF) y revisa tus errores en la consola de Error en el menu herramientas de FF

Prueba este codigo (Por semantica yo lo usaria asi)

Código: Text
  1. <a href="seccion1.php" onclick="location.href="+this.href>seccion1</a>
  2.  


si funciona te daras cuenta que el error esta en el JS (practicamente lo que se te ha dicho)


o en su defecto

Código: Text
  1.  
  2. <script>
  3. function next(url){
  4.      location.href=url;
  5.  }
  6. </script>
  7.  
  8. <a href="seccion1.php" onclick="next(this.href);">seccion1</a>
  9.  

Saludos
" ExIsTo y A vEcEs PiEnSo "

NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================

Ryusaki N

  • Miembro activo
  • **
  • Mensajes: 76
    • Ver Perfil
Re: Posible incoherencia en JS?
« Respuesta #7 en: Domingo 10 de Mayo de 2009, 22:35 »
0
Bueno primero que todo no sabia que actualmente la indicacion el la etiqueta script se inclina mas hacia el atributo type asi que tendre que corregir sintaxis y colocarlo.
Citar
Los codigos mostrados son funcionales y ya que no quieres mostrarnos tu JS (donde esta el error, quizas con otra funcion, un caracter no valido, una llave mal usada etc) correlo en Firefox (FF) y revisa tus errores en la consola de Error en el menu herramientas de FF
Pues bueno realmente si publique el codigo JS en el primer post de este tema... cuando escribi que no me gusta mostrar el codigo que da inteligencia a la pagina me referia a que no me gusta que salga el codigo JS en medio de la cabecera del HTML :) Y bueno si hice algo parecido a lo que sugieres ya que puse el nombre del archivo en medio del href="" y lo complemente con location. Es funcional pero intentare con el atributo type. Gracias a todos por su colaboracion, saludos. :good:
C/C++/C#/Java/Python dev. Frontend web developer. ASP.NET && PHP, ASM x86
No tengo vida social y me siento orgulloso!! 1000% Geek.

goldenscriptup

  • Miembro activo
  • **
  • Mensajes: 40
  • Nacionalidad: mx
    • Ver Perfil
Re: Posible incoherencia en JS?
« Respuesta #8 en: Lunes 11 de Mayo de 2009, 03:54 »
0
Respecto a F_TANORI
 
Cita de: "goldenscriptup"
En el head escribe lo siguiente, te recomiendo que debes de usar language="Javascript" usa type="text/javascript", como esta mostrado en el ejemplo. Actualmente me parece que el tag type es el que se usa.

Cita de: "F_Tanori"
Si bien eso es lo correcto no es motivo para que no funcione el codigo mostrado, se pude declarar un script


Es una recomendacion sobre la etiqueta type, yo se que eso no es el problema. Solo es una sugerencia por efecto de que se utiliza actualmente. :P

Respecto al demas codigo que puse si es funcional  ;)


Saludos!
"Sorprendedme retadme desadfiadme y desafio a vos" :huh:

F_Tanori

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re: Posible incoherencia en JS?
« Respuesta #9 en: Lunes 11 de Mayo de 2009, 04:56 »
0
Cita de: "goldenscriptup"
Respecto a F_TANORI
 
Cita de: "goldenscriptup"
...Actualmente me parece que el tag type es el que se usa.

Cita de: "F_Tanori"
Si bien eso es lo correcto no es motivo para que no funcione el codigo mostrado, se pude declarar un script


Es una recomendacion sobre la etiqueta type, yo se que eso no es el problema. Solo es una sugerencia por efecto de que se utiliza actualmente. :P
Saludos!

Type no es una etiqueta es una propiedad :P

Cita de: "goldenscriptup"
Respecto al demas codigo que puse si es funcional  ;)

Tranquilo, chaval que en ningun momento he dicho que no funcione, ni he descartado que sirva, aunque en un estricto sentido de la palabra funcional, no es del todo...


Esto funciona pues me generaria un enlace, pero no es correcto (no es funcional), es decir trabaja pero no cumpliria la funcion en si para lo que se requiere

http://www.midominioencuestion.com/www.google.com

Pero yo no he dicho que no funcione , el otro detalles esque la mayor parte del tiempo no es necesario utilizar ni rutas ni urls absolutas, ya que esto genera problemas, cuando la aplicacion se cambia de directorios, se modifican recursos, o se actualizan ciertas cosas

En fin...

No hay lio  :photo:
" ExIsTo y A vEcEs PiEnSo "

NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================

goldenscriptup

  • Miembro activo
  • **
  • Mensajes: 40
  • Nacionalidad: mx
    • Ver Perfil
Re: Posible incoherencia en JS?
« Respuesta #10 en: Miércoles 13 de Mayo de 2009, 21:51 »
0
es verdad type no es un tag, es una propiedad  :good:


no hay lio  :P

Saludos F_Tanori
"Sorprendedme retadme desadfiadme y desafio a vos" :huh:

Ryusaki N

  • Miembro activo
  • **
  • Mensajes: 76
    • Ver Perfil
Re: Posible incoherencia en JS?
« Respuesta #11 en: Domingo 17 de Mayo de 2009, 19:36 »
0
Oh esperen un momento! Creo que el problema del codigo ne se encuentra en JavaScript despues de todo! He quitado el atributo href= y me ha funcionado perfectamente:

Antes:
Código: Text
  1. <li><a href="#" onclick="next()";>Seccion1</a></li>
  2.  

Ahora:
Código: Text
  1. <li><a onclick="next()";>Seccion1</a></li>
  2.  

Pero eso sin duda alguna afecta a la interface grafica del menu ya que sin href en el codigo el cursor en vez de ser una mano es un cursor de subrallado tipo word y eso no indica al usuario que sea un link activo  :o . Se que en CSS se puede cambiar la forma del cursor pero... No se que me recomendarian.

Saludos.
C/C++/C#/Java/Python dev. Frontend web developer. ASP.NET && PHP, ASM x86
No tengo vida social y me siento orgulloso!! 1000% Geek.

locazopro

  • Miembro activo
  • **
  • Mensajes: 51
    • Ver Perfil
Re: Posible incoherencia en JS?
« Respuesta #12 en: Domingo 17 de Mayo de 2009, 21:33 »
0
Ryusaki N  , el código como te lo escribí yo es totalmente funcional, eso quiere decir que no tiene nada que ver el href. Te estas equivocando en otra cosa. Si quieres prueba en una página separada este código:

Código: Text
  1. <html>
  2. <head>
  3. <script type="text/javascript">
  4. function next(){
  5.     location.href="seccion1.php";
  6. }
  7. </script>
  8. </head>
  9. <body>
  10.   <div align="center" id="container">
  11.      <ul id="nav-bar">
  12.     <li><a href="#" onclick="next();">seccion1</a></li>
  13.     <li><a href="#" onclick="">seccion2</a></li>
  14.     <li><a href="#" onclick="">Seccion3</a></li>
  15.     <li><a href="#" onclick="">Seccion4</a></li>
  16.     <li><a href="#" onclick="">Seccion5</a></li>
  17.      </ul>
  18.    </div>
  19. </body>
  20. </html>
  21.  

y pruebalo, veras que si funciona. Acuerdate que el archivo seccion1.php debe existir porque hay algunos navegadores que al momento de llevarte a seccion1.php y si ven que el archivo no existe te redireccionan inmediatamente a la página que llamo al archivo, por ejemplo si seccion1.php no existiera y ejecuto el código de mas arriba en una pagina llamada por ejemplo index.html entonces el navegador intentaría entrar a seccion1.php pero no lo encontraría entonces  rápidamente volvería a index.html y se vería como si no hubiera pasado nada.

Ojala te sirva.

Saludos!

Ryusaki N

  • Miembro activo
  • **
  • Mensajes: 76
    • Ver Perfil
Re: Posible incoherencia en JS?
« Respuesta #13 en: Martes 19 de Mayo de 2009, 01:01 »
0
Tienes toda la razon del mundo al decir que el codigo es funcional pero el problema es que el codigo JavaScript esta embedido o incrustado en el HTML. Mi idea es la de anexar el Javascript mediante etiqueta <script> al HTML, y si la seccion1.php si existe. Lo curioso es que con el archivo JS externo y anexo con <script> si sirve siempre y cuando quite href... O bien, podria redefinir los links con el Location de PHP. Gracias por tu respuesta, saludos.
C/C++/C#/Java/Python dev. Frontend web developer. ASP.NET && PHP, ASM x86
No tengo vida social y me siento orgulloso!! 1000% Geek.

F_Tanori

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re: Posible incoherencia en JS?
« Respuesta #14 en: Martes 19 de Mayo de 2009, 06:22 »
0
Código: Text
  1.  
  2. <script>
  3. function next(url){
  4.      location.href=url;
  5.      return false;
  6.  }
  7. </script>
  8.  
  9. <a href="seccion1.php" onclick="return next(this.href);">seccion1</a>
  10.  
  11.  
  12.  

que la funcion retorne falso para que no se ejecute el enlace...


Saludos
" ExIsTo y A vEcEs PiEnSo "

NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================