Javascript 用下拉值-onchange替换URL的一部分
我的网站上有一个语言选择器下拉列表 更改语言后,URL将重定向到相应的站点 我当前的网址是 en/pages/home.aspx 在语言发生变化时,URL应该是 en/pages/home.aspx-关于选择英语 el/pages/home.aspx-关于选择Español py/pages/home.aspx-关于为所有语言选择Pббббббб等Javascript 用下拉值-onchange替换URL的一部分,javascript,jquery,Javascript,Jquery,我的网站上有一个语言选择器下拉列表 更改语言后,URL将重定向到相应的站点 我当前的网址是 en/pages/home.aspx 在语言发生变化时,URL应该是 en/pages/home.aspx-关于选择英语 el/pages/home.aspx-关于选择Español py/pages/home.aspx-关于为所有语言选择Pббббббб等 <pre> $("#dd-language").on("change", function() { var countryApp
<pre>
$("#dd-language").on("change", function() {
var countryAppend = $(this).val();
var pathArray = window.location.pathname.split('/')[4];
var res = pathArray.replace(pathArray,countryAppend);
var newURL = window.location.host + "/" + pathArray;
window.location = newURL;
});
</pre>
$(“#dd语言”)。关于(“更改”,函数(){
var countryAppend=$(this.val();
var pathArray=window.location.pathname.split('/')[4];
var res=pathArray.replace(pathArray,countryAppend);
var newURL=window.location.host+“/”+pathArray;
window.location=newURL;
});
这会在URL的末尾添加值,但我需要它来替换URL中的语言代码。一旦路径名数组被
/
拆分,用新语言覆盖数组中的[2]
nd项,然后再次通过/
加入:
/mem/ca/en/pages/home.aspx
例如,对于
document.querySelector('#dd-language').addEventListener('change',function(){
let url = window.location.href.split('/');
url[5] = this.value;
url = url.join('/');
window.location = url;
});
按/
拆分时,数组中的第二项将是ca
:
constpatharr='/mem/ca/en/pages/home.aspx'.split('/');
pathArr[2]=“el”;
console.log(pathArr.join('/')代码>正则表达式在这里应该很有用
范例
countryAppend=“xx”
console.log(
`https://www.example.com/mem/ca/en/pages/home.aspx`.replace(/\/.{2}\/pages/,“/”+countryAppend+“/pages”),
`https://www.example.com/mem/us/el/pages/home.aspx`.replace(/\/.{2}\/pages/,“/”+countryAppend+“/pages”),
`https://www.example.com/mem/mx/py/pages/home.aspx`.replace(/\/.{2}\/pages/,“/”+countryAppend+“/pages”)
)
下拉列表中的值是什么?请在此处添加您的完整代码,以便使用javascript简单地理解--使用语言值拆分并连接-var t=”“t=t.split(“/”)t[5]=“pa”//language code t.join(“/”)result=>”https:////www.example.com//mem//ca//pa//pages//home.aspx“您需要重定向页面,而不仅仅是更改url。谢谢,这很有效。但我们不确定用户是否总是先登陆“ca”,这是因为您缺乏信息。然后我们需要扩展正则表达式
document.querySelector('#dd-language').addEventListener('change',function(){
let url = window.location.href.split('/');
url[5] = this.value;
url = url.join('/');
window.location = url;
});
$("#dd-language").on("change", function() {
var countryAppend = $(this).val();
var url = location.href;
window.location = url.replace(/\/.{2}\/pages/,"/"+countryAppend+"/pages");
});