2009-12-24 66 views
0

我需要根據用戶所在的頁面動態更改每個頁面的樣式。Jquery - 從當前URL中取文本

要做到這一點,我打算採取被訪問的網頁的URL,剝離一些零碎,然後申請然後應用rresult到<body>標籤。這將允許我根據頁面的名稱進行樣式設置。

我的URL看起來像:

http://dan.manfredman.net/site/user/location/home.php 
http://dan.manfredman.net/site/user/location/profile.php 
http://dan.manfredman.net/site/user/location/users.php 

我只需要「家」,「個人資料」,「用戶」,我怎麼能使用jQuery從文件名稱中刪除.php然後再根據訪問的頁面將剩餘的「家庭」,「個人資料」,「用戶」應用於身體標記?

+0

我知道使用這種方法的缺陷,但是這是按照預期和用戶要求工作的。 – CLiown 2009-12-24 10:49:55

回答

0
$(document).ready(function() { 
    var pathname = window.location.pathname; 
    var pathname_no_php = pathname.replace(/\.php$/i, ""); 
    // => http://dan.manfredman.net/site/user/location/users 

    var pathname_splitted = pathname_no_php.split("/")._reverse()[0] 
    // => 'users' 

    $("body").attr("id", pathname_splitted); 
}); 
+0

謝謝,我正在尋找解決方案。 – CLiown 2009-12-24 10:49:23

1

你不需要的jQuery爲,只要使用普通的JavaScript:

var url = document.location.href; 
    var name = url.substring(
        url.lastIndexOf("/")+1 
       , url.lastIndexOf(".") 
       ); 
+0

但是您必須使用url.lastIndexOf(「。php」)而不是「.html」 – 2009-12-24 10:19:27

3

你可能會更好,在服務器端做這個,通過應用不同的CSS文件,這取決於頁你是在。

根據您正在開發的平臺 - PHP,Java,ASP.NET等 - 會有不同的方式來實現這一點。

無論客戶端是否啓用javascript,服務器端方法都可以使用。

編輯:我看到你有php文件擴展名,所以我猜你正在爲PHP開發 - RTFP,鮑勃!

+0

+ 1-這是處理此IMO更好的方法 – 2009-12-24 10:22:59

0

爲什麼沒有div並使用jquery更改類,並且css會自動跟隨。你可以隱藏一些使用CSS的部分,如果你不想顯示其他人。 更改整個頁面可能會導致用戶注意到菜單較早出現並消失。

0
var pathname = document.location.pathname; 
var name = pathname.substring(pathname.lastIndexOf("/")+1, pathname.lastIndexOf("."));