2011-02-16 5 views
15

Con toda la prensa negativa sobre Twitter y el uso de las URL hashbang de Gawker, me está resultando muy difícil encontrar ejemplos/bibliotecas sobre cómo usarlos realmente.¿Hay alguna biblioteca de JavaScript para trabajar con hashbang/shebang (#!) Urls?

Me gustaría usar las URL hashbang en un carrusel javascript en nuestro sitio web para que podamos enlazar directamente a una página específica del carrusel.

¿Existen buenas bibliotecas o ejemplos de navegadores cruzados (preferiblemente no jQuery, ya que usamos Prototype) tanto para empujar las nuevas URL a la ubicación de la página como para analizar la url en la carga de la página?

+1

¿Presión negativa? Me parece [perfectamente aceptable] (http://code.google.com/web/ajaxcrawling/docs/specification.html). –

+0

Sí ... ¿a qué prensa negativa te refieres? – drudge

+1

Aquí hay una: "Rompiendo la web con Hash Bangs" http://isolani.co.uk/blog/javascript/BreakingTheWebWithHashBangs Lo que me gusta particularmente es cuando el autor habla sobre cómo HashBangs y la excesiva confianza en la corrección de JavaScript no escrita por el los autores de los sitios, en el nuevo mundo de HTML lograron romper sitios web en todas las formas en que las personas que temían XHTML dijeron que XHTML lo haría. – scriptocalypse

Respuesta

6

Hemos estado trabajando en una biblioteca que realiza el mapeo de rutas URL: https://github.com/OpenGamma/RouteMap si todavía está buscando una.

+0

Entonces, si leo esto correctamente, agregas patrones de URL a la lib, y cuando el hash cambia para coincidir con uno de los patrones, desencadena una función asociada. – ChiperSoft

+0

Sí, eso es correcto. He actualizado la documentación para que sea un poco más clara. Lo siento por la respuesta tardía. – afshin

+0

Esto es más o menos lo que estaba buscando. ¡Gracias! – ChiperSoft

0

https://github.com/browserstate/History.js No tengo experiencia con él ya que uso BBQ Jquery, pero parece que debería resolver sus problemas.

+0

Esto viene muy cerca , pero está produciendo URL completamente diferentes en diferentes navegadores. Necesito que sea consistente. – ChiperSoft

0

Google Closure Library tiene una implementación genial para la pila del historial del navegador. Puede acceder al código fuente del historial from here.

Para usar el administrador de historial de la Biblioteca de cierres, debe definir una entrada oculta. Ahí está el truco. Si no le da un campo de entrada a la clase, creará uno para usted, pero intentará agregarlo DOM con document.write debido al soporte de navegador cruzado. La mejor y más fácil manera es proporcionar una entrada oculta.

Aquí hay una implementación simple de goog.History.

var history = new goog.History(false, '', document.getElementById('historyInput')); 
goog.events.listen(history, goog.history.EventType.NAVIGATE, function() { 
    console.log(history.getToken()); 
}); 
history.setEnabled(true); 

Luego navegue a algunas direcciones hash en su página y debería ver el hash cambiado en la consola como registro.

Cuestiones relacionadas