2011-06-30 34 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;