2011-08-01 44 views

回答

0
<script> 
$(window).load(function(){ 
    var pieces = location.href.split('/'); 
    if (pieces[3].indexOf('#!') !== 0) { 
     if (location.href.indexOf('#!') != -1) { 
      pieces = location.href.replace('#!','').split('/'); 
     } 
     pieces[3] = '#!/'+pieces[3]; 
     location.href = pieces.join('/'); 
    } 
}); 
</script> 
0

我不知道我完全理解你的問題。客戶端庫無法更改URL的路徑部分,而不會導致瀏覽器從服務器獲取不同的頁面。

所以,如果用戶去http://www.mywebsite.com/page/,那麼你可以使用客戶端的JavaScript將用戶重定向到http://www.mywebsite.com/#page/,但會導致瀏覽器加載http://www.mywebsite.com/的頁面,然後嘗試找到該#page片段頁。如果您希望瀏覽器重新加載http://www.mywebsite.com/#page/,那麼確實會發生什麼情況。

FB不會在您的頁面上運行JavaScript,因此如果FB轉到http://www.mywebsite.com/page/,就會看到它(它不會像常規瀏覽器那樣重定向)。

如果你想要做的JavaScript有力重定向,你可以把這個代碼在你的頁面:

var path = window.location.pathname; 
if (path.search(/^\/page\/?$/) >= 0) { 
    window.location.replace("http://www.mywebsite.com/#page/"); 
} 

此代碼測試,看是否在頁面的URL路徑名/page/page/和如果是的話,那麼重定向。

+0

嗯,我希望訪問者重定向到並查看http://www.mywebsite.com/#page/的內容,當他們鍵入或點擊指向http:// www的鏈接時。 mywebsite.com/page/我只想通過facebook linter查看http://www.mywebsite.com/page的內容,以便閱讀它包含的Open Graph元標記。 – Gab

+0

然後,從http://www.mywebsite.com/page/實現JavaScript重定向到http://www.mywebsite.com#page。 FB不會執行Javascript,因此它不會重定向 - 用戶的瀏覽器將執行重定向(在重定向期間,它們的頁面將閃爍到新內容)。僅供參考,您可能想檢查FB的服務條款。谷歌會認爲這是「隱藏」,這意味着爲谷歌提供一個不同的頁面與用戶。隱藏網站在Google上受到處罰。 – jfriend00

+0

好的,但就像我在標題中說過的那樣,我需要語法幫助;-) – Gab