2013-10-15 40 views
0

我有一些現有的網址,它們會在頁面加載後使用網址哈希向JavaScript提供額外的數據,例如, http://www.example.com/my/directory/#/foo/bar//#停止工作的預先存在的網址

我執行jquery.history別的東西,而且還需要將這些舊網址繼續工作(例如,如果有人可能會與/#...部分書籤它​​)。

然而,在頁面加載時,插件剝離了域和/#之間的所有內容,例如, URL最終變爲: http://www.example.com/foo/bar/

這不會發生在IE 9中,但發生在Firefox和Chrome中。

任何想法?我不認爲這是插件中的一個錯誤,但是我很樂意修改我自己使用的未分類源文件,如果有人提出修復方案不會破壞其餘的功能。

一個可能的想法 - 我不再關心#之後URL中的額外數據,所以也許可以在歷史插件做任何事情之前從URL中刪除該部分。我還不完全確定可能會發生什麼,或者更具體地說,當插件修正網頁加載時的URL。

回答

1

最後我做了我在問題結尾提到的內容。增加了此位內嵌JS之前調用歷史插件js文件:

(function(){ 
    if (document.location.hash.length !== 0) { 
     document.location.hash = ''; 
    } 
})(); 

在最壞的情況我們最終的URL仍然有在最後一個尾隨#,但因爲它沒有​​然後歷史插件不會把它搞亂。