2011-06-30 28 views
1

這是一個非常初學者的問題,但我不知道JavaScript,我只想實現一個snipplet,我發現谷歌搜索周圍。JavaScript substr window.location.href

原始代碼是:

 

var langcodes=["it", "es"]; 
var langCode = navigator.language || navigator.systemLanguage; 
var lang = langCode.toLowerCase(); 
lang = lang.substr(0,2); 
var dest = window.location.href; 
for (i=langcodes.length-1;i >= 0; i--){ 
    if (lang==langcodes[i]){ 
     dest = dest.substr(0,dest.lastIndexOf('.')) + '-' + lang.substr(0,2) + dest.substr(dest.lastIndexOf('.')); 
     window.location.replace ?window.location.replace(dest) :window.location=dest; 
    } 
} 

如果我的瀏覽器語言是it_IT,將取代

http://www.mysite.com/test.html

http://www.mysite.com/test-it.html

我想新的網址是:

http://www.mysite.com/it/test.html

我嘗試了幾種方法,沒有運氣。

任何幫助表示讚賞。

最大

+1

我想提一下,通常的做法是做那個服務器端。每個瀏覽器都會在一個簡單的頭文件中發送它的首選語言:'Accept-Language:en-US,en; q = 0.8,ru; q = 0.6,lt; q = 0.4',您可以分析和使用它來確定頁。 – bezmax

回答

1

試試這個。 ..

dest = dest.substr(0,dest.lastIndexOf('/')) + '/' + lang.substr(0,2) + dest.substr(dest.lastIndexOf('/')); 
0

你可以這樣做:

if (lang==langcodes[i]){ 
    dest = dest.substr(0,dest.lastIndexOf('/') +1) + lang.substr(0,2) + dest.substr(dest.lastIndexOf('/')); 
    window.location.replace ?window.location.replace(dest) :window.location=dest; 
} 

OK,上www.google.it測試,它woked(輸出www.google.it/it/)

0

試試這個:

var langcodes=["it", "es"]; 
var langCode = navigator.language || navigator.systemLanguage; 
var lang = langCode.toLowerCase(); 
lang = lang.substr(0,2); 
var dest = window.location.href; 

dest = dest.substr(0,dest.lastIndexOf('.')) + '-' + lang + dest.substr(dest.lastIndexOf('.')); 
window.location = dest;