2011-02-16 13 views
15

Con tutta la stampa negativa su Twitter e l'uso di hashbang da parte di Gawker, sto facendo fatica a trovare esempi/librerie su come effettivamente usarli.Esistono librerie javascript per lavorare con gli URL di hashbang/shebang (#!)?

Mi piacerebbe utilizzare gli URL di hashbang in un carosello di javascript sul nostro sito Web in modo che possiamo collegarci direttamente a una pagina specifica del carosello.

Esistono buone librerie o esempi cross-browser (preferibilmente non-jQuery, poiché utilizziamo Prototype) sia per l'inserimento di nuovi URL nel percorso della pagina sia per l'analisi dell'url sul caricamento della pagina?

+1

Negativo Premere? Sembra [perfettamente accettabile] (http://code.google.com/web/ajaxcrawling/docs/specification.html) per me. –

+0

Sì ... a quale stampa negativa ti riferisci? – drudge

+1

Eccone uno: "Rompere il web con Hash Bangs" http://isolani.co.uk/blog/javascript/BreakingTheWebWithHashBangs Quello che mi piace particolarmente è quando l'autore parla di come HashBangs e dell'eccessivo affidamento sulla correttezza di JavaScript non scritta dal gli autori dei siti hanno, nel nuovo mondo dell'HTML, riusciti a violare i siti Web in tutti i modi in cui le persone che temevano XHTML affermavano che l'XHTML sarebbe. – scriptocalypse

risposta

6

Abbiamo lavorato su una libreria che esegue la mappatura del percorso URL: https://github.com/OpenGamma/RouteMap se ne stai ancora cercando uno.

+0

Quindi, se l'ho letto correttamente, aggiungete i pattern url alla lib e quando l'hash cambia per corrispondere a uno dei pattern attiva una funzione associata? – ChiperSoft

+0

Sì, è vero. Ho aggiornato la documentazione per renderla un po 'più chiara. Scusa per la risposta in ritardo. – afshin

+0

Questo è più o meno quello che stavo cercando. Grazie! – ChiperSoft

0

https://github.com/browserstate/History.js Non ho esperienza con esso perché uso BBQ Jquery, ma sembra che dovrebbe risolvere i vostri problemi.

+0

Questo si avvicina molto , ma sta producendo URL completamente diversi in browser diversi. Ho bisogno che sia coerente. – ChiperSoft

0

Google Closure Library ha un'implementazione davvero interessante per la cronologia dei browser. È possibile raggiungere il codice sorgente della cronologia from here.

Per utilizzare il gestore cronologico di Closure Library è necessario definire un input nascosto. C'è il trucco. Se non si fornisce un campo di input alla classe, ne creerà uno per te, ma proverà ad aggiungerlo DOM con document.write a causa del supporto per browser incrociato. Il modo migliore e più semplice è fornire un input nascosto.

Ecco una semplice implementazione di 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); 

quindi passare alcuni URL hash nella tua pagina e si dovrebbe vedere il vostro hash cambiato nella tua console come log.

Problemi correlati