如何摆脱添加到字符串开头的随机“%3”

时间:2016-03-22 20:53:32

标签: javascript jquery

我正在尝试编写一个jQuery函数,以便我可以切换到另一个页面,该页面上有相同的东西但是使用不同的语言。下面的代码用于实际更改页面,但正如您在下面的图片中看到的那样,当我运行它时,URL字符串的前面会添加一个“%3”。关于这是为什么的任何想法?

$(langchooser).change(function() {
    var new_lang = $(langchooser).val();
    changeLanguage(new_lang);
    var x = location.host;
    var y = "/";
    var z = x.concat(y, new_lang);
    console.log(z);
    window.open(z, "_self");
});

issue pic

1 个答案:

答案 0 :(得分:5)

%31被编码为1十六进制转义符。

真正的问题是您的网址从一开始就缺少http://; Chrome在其错误记录中只有一个错误,即错误地对第一个字符进行URL转义。

也许你应该做

var l = window.location,
    url = l.protocol + '//' + l.host + '/' + new_lang;
window.open(url, '_self');