event change javascript jquery ajax fragment-identifier hashchange

javascript event listener url change



¿Cuál es la mejor biblioteca para hacer un hash/historial de URL en JQuery? (6)

He estado buscando en las bibliotecas JQuery el hash de la URL, pero no encontré ninguna que fuera buena. Existe el "plugin de historial", pero todos sabemos que tiene errores y no es flexible.

Estoy cargando mis páginas dentro de un div. Necesitaré una forma de retroceder / avanzar junto con el hashing de URL.

mydomain.com/#home mydomain.com/#aboutus mydomain.com/#register

¿Cuál es la mejor biblioteca que puede manejar todo esto?


¿Has probado jQuery Address? De Asual, los chicos que hicieron SWFAdress. Asual - jquery Dirección

El complemento jQuery Address proporciona potentes capacidades de enlace profundo y permite la creación de direcciones virtuales únicas que pueden apuntar a una sección de sitio web o al estado de una aplicación.


AFAIK, todos los complementos históricos hacen lo mismo:

setInterval(function() { if(theHashChanged) { someFunction(oldHash,newHash); } }, 500/*whatever*/);

Eso es bastante básico (menos los trucos del navegador para agregar entradas de historial sin hacer clic en un enlace, etc.). Siempre va a tener errores porque es un poco pirateado y no hay una API de navegador cruzado para manejar los cambios en el historial.

Además de todo esto, la experiencia del usuario para este tipo de cosas no es muy buena. Los usuarios no entienden cuándo tienen que hacer clic en el botón Atrás 4 veces para salir de la página.


Hace poco miré 3 plugins diferentes: jquery history plugin , history y jQuery BBQ .

Todos fueron bastante difíciles de configurar, conseguí que jQuery.history funcionara pero todavía tenía problemas con IE7. Así que me cambié a BBQ y funcionó bien en todos nuestros navegadores de destino (IE6, IE7, IE8, Fx3).

Así que recomiendo el plugin jQuery BBQ.

Edición: aquí hay una publicación de blog que acabo de escribir, que demuestra jQuery BBQ con menús desplegables en cascada.


He tenido buena suerte con la reallysimplehistory (nee dhtmlHistory). No es específico de jQuery, pero funciona en IE, Firefox y webkit, y no requiere mucha configuración.


Quizás intente este complemento de jQuery History: https://github.com/balupton/jquery-history/ Proporciona compatibilidad con varios navegadores, enlace a hashes, sobrecarga de hashes, todo lo demás.

También hay una extensión Ajax para él, que le permite actualizar fácilmente su página web a una aplicación Ajax adecuada: https://github.com/balupton/jquery-ajaxy/

En general, está bien documentado, es compatible y tiene muchas funciones. También se ganó una pregunta generosa aquí ¿Cómo mostrar las solicitudes de Ajax en la URL?

O si desea utilizar la API de historial de HTML5 hay: https://github.com/browserstate/history.js


History.js está bien documentado / mantenido y es compatible con todos los navegadores.

https://github.com/browserstate/history.js

Desde el sitio:

History.js apoya con gracia las API de estado / historial HTML5 (pushState, replaceState, onPopState) en todos los navegadores. Incluyendo soporte continuo para datos, títulos, replaceState. Soporta jQuery, MooTools y Prototype. Para los navegadores HTML5, esto significa que puede modificar la URL directamente, sin necesidad de usar hashes nunca más. Para los navegadores HTML4, volverá a usar la antigua funcionalidad de onhashchange.