¿Cuál es la diferencia entre href=""
, href="#"
y href="javascript:void(0)"
?
¿Cuáles son los diferentes usos para ellos y cuándo es uno mejor que otro?¿Cuál es la diferencia entre href = "", href = "#" y href = "javascript: void (0)"?
Respuesta
'#' llevará al usuario de nuevo a la parte superior de la página, por lo que generalmente voy con void(0)
.
Tres razones. Fomentar el uso de # amoungst un equipo de desarrolladores conduce inevitablemente a cierta usando el valor de retorno de la función llamada así:
function doSomething() {
//some code
return false;
}
Pero luego se olvidan de usar return doSomething()
en el onclick
y sólo tiene que utilizar doSomething()
.
Una segunda razón para evitar # es que el resultado final es falso; no se ejecutará si la función llamada arroja un error. Por lo tanto, los desarrolladores también deben recordar manejar cualquier error apropiadamente en la función llamada.
Una tercera razón es que hay casos en los que la propiedad del evento onclick se asigna dinámicamente. Prefiero poder invocar una función o asignarla dinámicamente sin tener que codificar la función específicamente para un método de conexión u otro. De ahí mi onclick (o en cualquier cosa) en el formato HTML tener este aspecto:
onclick="someFunc.call(this)"
O
onclick="someFunc.apply(this, arguments)"
Usando javascript:void(0)
evita todos los dolores de cabeza por encima y no he encontrado ningún ejemplo de un inconveniente.
Así que si usted es un desarrollador independiente, puede presentar claramente su propia elección, pero si trabaja como un equipo que tiene que cualquiera de los estados:
use href="#"
, asegúrese onclick
siempre contiene return false;
al final, que cualquier función llamada no arroja un error y si adjuntas una función de forma dinámica a la propiedad onclick, asegúrate de que, además de no arrojar un error, devuelve falso.
O
use href="javascript:void(0)"
El segundo es claramente más fácil de comunicados.
href = "" se vinculará a la misma página que la que está actualmente, actualizando la página de manera efectiva. href = "#" no refrescará la página, pero al usar # hará que la pantalla se mueva a la parte superior de la página (es el navegador efectivamente buscando un ancla sin nombre,). javascript: void (0) evitará que ocurra algo en el enlace.
Uso # cuando quiero poner enlaces y no estoy seguro de dónde van, por ejemplo al crear un diseño de página. Usualmente uso un formulario action = "" si quiero publicar el formulario en la misma página, pero nunca he usado personalmente href = "" o javascript: void (0).
href=""
volverá a cargar la página actual
href="#"
se desplazará a la página actual a la parte superior
`href = "javascript: void (0)" no hará nada.
Puede obtener el mismo efecto de javascript: void(0)
devolviendo false desde el controlador de evento click del ancla con cualquiera de los otros dos métodos también.
Yo prefiero usar <a id="the-link" href="#">Link</a>
y luego enlazar un controlador de eventos para el detector de clics en algún lugar de mi javascript como:
document.getElementById('the-link').onclick = function(){
// Do stuff
return false;
};
De esta manera, ya que estás usando #
, incluso si el usuario ha desactivado el javascript, el la página no se volverá a cargar (simplemente se desplazará a la parte superior), y creo que es mucho más limpia que javascript: void(0)
Si usa href=""
, algunos navegadores podrían pensar que la etiqueta de ancla no es un enlace, sino un ancla . Entonces no obtendría el comportamiento y los eventos de un enlace. Incluso si funciona en los navegadores que puede probar, es más seguro no usar un valor vacío.
A menudo se usa el marcador sin nombre href="#"
. Es lo mismo que vincular a cualquier marcador, como href="#contact"
, excepto que el marcador sin nombre lleva a la parte superior de la página. Esto funciona como una buena inversión si el Javascript no funciona, ya que solo te lleva a la parte superior en lugar de navegar en otro lugar. A veces se ve que el desarrollador olvidó detener la acción predeterminada del enlace, y la página salta a la parte superior mientras que el script hace lo que hace.
El uso de href="javascript:void(0)"
es una forma de generar una URL que no conduce a ninguna parte, por lo que no se seguirá el enlace. Funciona bien, pero como la URL se muestra en el campo de estado cuando señala el enlace en la mayoría de los navegadores, no se ve tan bonita.
Son dos enlaces diferentes: 1.
href = "" va a redirigir al usuario a la página raíz. Más como la página predeterminada o la página de índice.
2. href = "#" No redirigirá al usuario, pero tampoco hará nada más que un cambio en la URL. Es solo para hacer un botón de URL como me refiero a un botón de anclaje. Pero no hay dónde ir con eso. 3. Si quiere hacer algún trabajo de javascript con él. Puede usar
<button onclick="dothis()">Click me!</button>
function dothis() {
// do what ever you want to do here
}
¡El tercer tipo no cambiará la url, no redirigirá!
- 1. href = "javascript:" vs. href = "javascript: void (0)"
- 2. ¿Cuál es la diferencia entre Href y Url.Content?
- 3. ¿Qué es href = javascript :;
- 4. javascript :; vs javascript: void (0);
- 5. Llamar a href desde JavaScript
- 6. Anchor without href
- 7. ¿Cuál es la diferencia entre usar "http: //" y simplemente "//" en src o href?
- 8. ¿Por qué usar 'href =' javascript: void (0); '' en lugar de algo más fácil de usar?
- 9. Cuál es la diferencia entre <a href="url"> and window.location = "url" on iOS?
- 10. href jQuery y separación onclick
- 11. Enlace HREF que no tiene como objetivo nada, no quiere usar hash o void (0)
- 12. jQuery rewrite href
- 13. getBaseURL() de JavaScript llamada en un href = ""
- 14. bigote interior del href
- 15. Href = "#" No desplazarse
- 16. href Hermosa sopa
- 17. BeautifulSoup conseguir href
- 18. Cambiar atributo href
- 19. ¿Cómo desactivo un enlace href en JavaScript?
- 20. href = "file: //" no funciona
- 21. Seleccionar anclajes sin href
- 22. LaTeX ayuda con href
- 23. botones sin href, onclick, etc.
- 24. this.href vs $ (this) .attr ('href')
- 25. ¿Cuál es la diferencia entre void * y void **?
- 26. ¿Por qué usar `javascript: void (0)` en lugar de `javascript:` como un href no hacer nada marcador de posición?
- 27. ¿Cómo hago fancybox href dynamic?
- 28. ¿Cómo eliminar "href" con Jquery?
- 29. un enlace href en img
- 30. wysihtml5. imagen src y href están deshabilitadas