2011-02-16 32 views
15

隨着Twitter和Gawker使用hashbang網址的所有負面新聞,我很難找到任何示例/庫如何實際使用它們。是否有任何JavaScript庫與hashbang/shebang(#!)網址一起工作?

我想在我們的網站上的javascript輪播中使用hashbang網址,以便我們可以直接鏈接到輪播的特定頁面。

是否有任何優秀的跨瀏覽器庫或示例(最好是非jQuery,因爲我們使用Prototype)既推送新的URL到頁面位置,也分析頁面加載的URL?

+1

負壓?似乎[完全可以接受](http://code.google.com/web/ajaxcrawling/docs/specification.html)。 –

+0

是啊..你指的是什麼負面新聞? – drudge

+1

下面是一個:「用Hash Bangs打破網頁」http://isolani.co.uk/blog/javascript/BreakingTheWebWithHashBangs我特別喜歡的是當作者談論HashBangs如何和過度依賴JavaScript寫的不正確時網站作者在新的HTML世界中設法打破網站的所有方式,那些害怕XHTML的人說XHTML會。 – scriptocalypse

回答

6

我們一直在研究如何使用URL路由映射的庫:https://github.com/OpenGamma/RouteMap如果您仍然在尋找它,

+0

因此,如果我正確讀取它,則可以將URL模式添加到庫中,並且當哈希更改爲匹配其中一種模式時,它會觸發相關函數? – ChiperSoft

+0

是的,沒錯。我已經更新了文檔,以便更清楚一點。回覆晚了非常抱歉。 – afshin

+0

這或多或少是我正在尋找的。謝謝! – ChiperSoft

0

https://github.com/browserstate/History.js我沒有經驗,因爲我使用BBQ Jquery,但它看起來應該可以解決您的問題。

+0

這真的很接近,但它在不同的瀏覽器中生成完全不同的網址。我需要它是一致的。 – ChiperSoft

0

Google Closure Library爲瀏覽器歷史堆棧提供了非常酷的實現。您可以到達歷史源代碼from here

要使用Closure Library歷史記錄管理器,您應該定義一個隱藏的輸入。有一招。如果你沒有給類輸入字段,它會爲你創建一個,但是由於跨瀏覽器的支持,它會嘗試附加DOM到document.write。最好和簡單的方法是提供隱藏的輸入。

這是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); 

然後導航到你的頁面一定混編版網址,你會看到你的改變散在控制檯日誌。

相關問題