检查document.location中的/ en /或/ es /

时间:2012-01-09 09:08:14

标签: javascript jquery

我需要根据document.location

获取用户正在使用的语言

网址类型为:

domain.com/en/blabla.html
domain.com/es/blabla.html
domain.com/it/blabla.html

所以我这样想:

function getLan(){
   var idioma = document.location;
   var idiomaTmp = idioma.split("/");
   return = idiomaTmp[1];
}

但是(我不明白但是)我在firebug中得到了这个错误

idioma.split is not a function
[Detener en este error] var idiomaTmp = idioma.split("/"); 

任何想法为什么?或者更好的解决方案?

4 个答案:

答案 0 :(得分:3)

document.location是一个对象。虽然确实有一个自定义的toString方法,所以alert(document.location)显示实际的url,它本身不是一个String,而String方法不适用于它。你想要的是在使用String方法之前将这个Object转换为String:

document.location.toString().split(...) etc

至于更好的解决方案,请尝试使用正则表达式:

var m = document.location.toString().match(/\/([a-z][a-z])\//)
language = m ? m[1] : "default";

答案 1 :(得分:2)

您希望location.href不是document.location

答案 2 :(得分:0)

您在代码中的第一个错误是=之后您不需要return

第二个错误是document.location将返回一个对象,其中包含有关网址的详细信息,而不是字符串。

其实你想要这个(只会返回路径)

window.location.pathname // example: /en/

所以你的功能看起来像这样:

function getLang() {
    return window.location.pathname.split("/")[1];
}

答案 3 :(得分:-2)

使用document.location.href.split('/')而不是document.location.href.split(“/”)然后如果你需要使用substring(,)