我需要根据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("/");
任何想法为什么?或者更好的解决方案?
答案 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(,)