2012-03-29 50 views
1

我正在爲客戶創建雙語網站。將創建兩種版本的不同語言的網站並存儲在兩個文件夾中: /en/ /chi/獲取當前URL並修改子目錄,然後轉到URL使用Javascript

我想要做的是創建一個鏈接以在兩種語言之間切換。在概念層面上,我瞭解Javascript可以檢測當前URL並將其分割爲不同的組件,並修改其中的一部分(在這種情況下,在/ en /和/ chi /之間進行更改),然後轉到該新URL鏈接被點擊。

但是我對JavaScript的零知識,所以我不知道如何執行?我也碰到過這個頁面: http://css-tricks.com/snippets/javascript/get-url-and-url-parts-in-javascript/ 但它沒有說明如何修改並轉到新的鏈接。

您的幫助將不勝感激!

回答

2

不會打破易用性的考慮像Shift鍵+單擊在新窗口中打開,您應該創建一個普通的舊鏈接(<a>),其指向其他語言的網址。通過JavaScript構建鏈接沒有任何問題,但是您也可以在服務器上使用PHP或您正在使用的任何模板語言來完成此操作。

這是一個腳本,可以用JavaScript來做到這一點,如果這是您決定要做的事情。

<!DOCTYPE html> 
<body> 
    Content before the link. 
    <script> 
    (function() { 
     // this assumes you're on the en version and want to switch to chi 
     var holder = document.createElement("div"); 
     var url = window.location.href.replace("/en/", "/chi/"); 
     var link = document.createElement("a"); 

     link.innerText = "Chewa"; // or whatever the link should be 
     link.href = url; 
     holder.appendChild(link); 
     document.write(holder.innerHTML); 
    })(); 
    </script> 
    Content after the link. 
</body> 
+0

很高興爲你效勞。如果你喜歡這裏的任何答案,你應該接受它。否則,請留下一些意見,讓我們知道缺少的是什麼。 – 2012-04-02 02:46:21

0

如果您只想完整填寫網址並將/en/替換爲/chi/或反之亦然,請使用下面的代碼。

HTML

<span onclick="SwitchLang()">View [Some other Language]</span> 

的JavaScript

function SwitchLang() { 
    //Does URL contain "/en/"? 
    if(window.location.href.indexOf("/en/") != -1) { 
     //URL contain "/en/", replace with "/chi/" 
     window.location.href = window.location.href.replace("/en/", "/chi/"); 
    } 
    //Does URL contain "/chi/"? 
    else if(window.location.href.indexOf("/chi/") != -1) { 
     //URL contain "/chi/", replace with "/en/" 
     window.location.href = window.location.href.replace("/chi/", "/en/"); 
    } 
} 

或者多一點簡潔(未註釋版本)

function SwitchLang() { 
    if(window.location.href.indexOf("/en/") != -1) 
     window.location.href = window.location.href.replace("/en/", "/chi/"); 
    else if(window.location.href.indexOf("/chi/") != -1) 
     window.location.href = window.location.href.replace("/chi/", "/en/"); 
} 

注:在JS中,當您修改window.location.href時,新URL將自動加載。

這裏的a working fiddle讓你玩。

+0

這是一個乾淨的工作解決方案(如小提琴演示)。爲什麼命中和運行-1? – 2012-03-29 12:40:59

-1

看起來您需要更改window.location.pathname。例如:

// assuming the url `http://www.example.org/en/foo/bar/page.html` 

var paths = window.location.pathname.split("/"); 
// change `en` 
paths[1] = "chi"; 
// go to the new url 
window.location.pathname = paths.join("/"); 

參見:

https://developer.mozilla.org/en/DOM/window.location