2011-09-18 31 views
1

我的頁面運行在php上,沒有js用戶。對於使用javascript的用戶,我加載索引中的所有內容並結合hashchangevent。所以這些鏈接全部看起來像www.page.com/#page.php,之前有一個#。如果用戶以這種方式鍵入,每件事情都像魅力和內容被加載索引.php如何使用Javascript或jQuery從「page.php」重定向到「#page.php」?

但是,如果用戶將進入www.page.com/page.php頁面當然結束了PHP頁面和動態頁面當然不會工作,除非用戶將點擊索引頁面並繼續導航。所以這不是一個很酷的方式。

我的問題:

我怎樣才能從重定向用戶:

www.page.com/page.php

WWW。 page.com/#page.php

當他們在瀏覽器中輸入www.page.com/page.php時

當然只能用javascript。頁面應該在沒有javascript的情況下正常使用php。

謝謝。

+0

如果啓用了JavaScript的用戶想要與未啓用JavaScript的朋友分享他們正在瀏覽的頁面,該怎麼辦? – icktoofay

回答

0

當頁面加載時,通過解構和重新組裝URI將window.location更改爲所需的URL。不幸的是,你必須在每一個你想要重定向的網頁上(即page.php)都包含它。

$(document).ready(function() { 
    // Insert the pathname after the hash, but skip the leading '`' 
    window.location = "/#" + document.location.pathname.slice(1); 
}); 

這是略少乾淨,但你也可以從.ready()完全刪除window.location位。這會影響性能的小幅提升。

如果您希望散列重定向僅影響當前路徑的最後一個元素,請改爲使用下面的代碼。

window.location = "./#" + document.location.pathname.split('/').pop(); 
+0

非常酷!謝謝!但是如果我的網址更長,那麼怎麼辦? www.page.com/folder/page.php - 甚至更多文件夾。我需要改變什麼?因爲這會將#移到www.page.de/#folder/page.php。 – Melros

+0

什麼都沒有。 Location.pathname屬性捕獲域名後面和查詢字符串前面的所有內容。 – cheeken

+0

是的,這就是爲什麼www.page.com/folder/#page.php不起作用? – Melros

相關問題