2013-02-25 54 views
1

我創建使用兩個數據庫雙語網站:創建超級鏈接基於當前URL

www.martyregan.com/ www.martyregan.com/jp/

您可以選擇使用網站的語言'網站語言'的標誌,但目前的鏈接只能讓你進入主頁。這兩個網站上的路徑/ URL完全相同,而不是日文站點上的/ jp /目錄。

我正在尋找一種方法來根據訪問者當前所在頁面的URL來更改超級鏈接以轉到並行頁面。我認爲這很簡單,因爲路徑是相同的,但不確定從jquery的一些知識開始。

回答

1

這裏假設你的語言是可訪問的,如下圖所示。 爲方便起見,將從URL中刪除「http://」。

$(function(){ 
    var lang = 'jp'; 

    $('a').attr('href', function(x, url){ 
     var split = url.replace(/(http:)?(\/\/)?/, '').split('/'); 
     return split.shift() + '/' + lang + '/' + split.join('/'); 
    }); 
}); 
+0

的某個元素中的所有元素都存儲起來,這意味着標籤? – 2013-02-25 03:50:42

+0

是的,您可以在「」標記內放置「var lang ='jp'」。這整段代碼可以放在標籤中。 – slamborne 2013-02-25 03:55:21

+0

我真的很希望我知道如何改變客戶CMS,Concrete5上的該死標籤。謝謝,讓我看看我能否把它關掉。我應該把英文網站的頭部也設置爲en,對吧? – 2013-02-25 04:02:24

0

根據需要支持的瀏覽器,您可能無法使用<base>標籤。您可以通過從服務器上獲取它來將其設置爲任何基礎。

如果你想使用jQuery來做到這一點,它應該是相當簡單的,如果所有的href S的是絕對的:

$("a").attr('href', function (_, href) { 
    return $("base").attr('href') + href; 
}); 

這是假設你正在使用<base>。如果你不是,你可以從window.location.path,甚至頁面上的其他元素獲得路徑。

如果你感到困惑時,JavaScript只需要如果<base>是不夠的,在工作自身的

+0

嗯謝謝!我怎樣才能告訴它只應用網站語言容器中的兩個超鏈接? – 2013-02-25 03:41:01

+0

@JosephThomas如果它只適用於*兩個*鏈接,則不要使用''。你可以改變你的JavaScript選擇器:'$(「。website-language-container a」)。attr' – 2013-02-25 03:46:51

+0

我在哪裏可以使用window.location.path? – 2013-02-25 04:26:26