我正在使用具有動態內容的網站。重寫URL散列以獲取變量
當您單擊一篇文章時,它會更改爲使用推送狀態的地址。
例子:
http://www.some-site.com/news/ - 點擊一條新聞
http://www.some-site.com/news/dynamic-url/前 - 點擊新聞項目之後
但作爲pushState的並不在IE或以上的瀏覽器,我已經重寫它使用jQuery.address因此它改變了URL中的哈希而不是IE。
現在的問題,是說某人發送鏈接到現場的朋友,他們從Chrome中複製和他們的朋友使用IE瀏覽器,它會開始追加新的有該網址。
例子:
http://www.some-site.com/news/dynamic-url/ - URL發送給朋友
http://www.some-site.com/news/dynamic-url/#!/dynamic-url - 朋友後URL訪問該網站
所以,我卡在如何改寫/重定向他們。因爲散列永遠不會被髮送到Apache。 我在推特上看到過,他們正是我想要的,但我無法弄清楚如何。
https://twitter.com/#!/google被重定向到https://twitter.com/google和它在IE工作。
任何幫助非常感謝,如果你不明白請請我詳細說明。
正如David Thomas所建議的那樣,這裏是函數。
var permalink = function(title, id, permalink){
var current = siteUrl + type + (order ? '/orderBy/' + order : '');
var newUrl = current + '/' + permalink + '/';
if(jQuery.browser.msie){
newUrl = '/' + permalink + '/';
jQuery.address.value(newUrl);
}
else{
stateNum++;
window.history.pushState({state: stateNum}, title, newUrl);
}
jQuery('title').html('SITE - ' + title);
}
我想你將不得不發佈這樣做的函數,因爲無論你在這裏得到的答案應該或將與該函數集成在一起。 –
將其添加到OP中。 – CharliePrynn
Twitter想要[徹底刪除hashbangs](https://www.google.com/search?q=twitter+without+hashbangs)。它更簡單。你真的需要在IE上提供AJAX支持嗎? –