使用jQuery切换页面语言URL失败,寻求解决方案
解决jQuery语言URL切换问题
看起来你现在的代码是直接跳转到语言首页,而不是当前页面的对应语言版本对吧?咱们来一步步修正这个问题:
问题分析
你的现有代码里,data-wpurl存储的是语言首页的地址(比如/en_Us/),点击后会直接跳转到首页,而不是当前页面(比如/de_DE/about-us/)对应的/en_Us/about-us/。另外代码里的wpurl变量也没有定义,这也是导致失效的原因之一。
修正方案
我们需要基于当前页面URL来替换语言代码,而不是直接跳转到首页。
1. 修改HTML结构
给每个语言链接添加data-lang属性,用来存储目标语言代码:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div class="sidebar_lang"> <span>Language:</span> <div class="lang_option"> <a href="#" data-lang="de_DE" class="lang_txt" rel="group">DE</a> <a href="#" data-lang="en_Us" class="lang_txt" rel="group">EN</a> </div> </div>
2. 编写jQuery逻辑
点击语言链接时,获取当前页面URL,替换其中的语言代码部分,然后跳转:
$('a[rel="group"]').on('click', function(e) { e.preventDefault(); // 获取目标语言代码 const targetLang = $(this).data('lang'); // 获取当前页面URL let currentUrl = window.location.href; // 替换URL中的语言代码部分:匹配 /xx_XX/ 格式的片段 // 这里假设语言代码总是在域名后的第一个路径段 const newUrl = currentUrl.replace(/\/[a-z]{2}_[A-Z]{2}\//, `/${targetLang}/`); // 跳转到新URL window.location.href = newUrl; });
额外说明
- 如果你的语言代码格式不是
xx_XX,可以调整正则表达式来匹配,比如如果是xx-XX就改成/\/[a-z]{2}-[A-Z]{2}\//。 - 这段代码会自动识别当前页面的语言路径,替换成目标语言,不管你在哪个页面(比如
about-us、contact等)都能正确跳转。
这样修改后,当你在https://beta.yourtaxi.ch/de_DE/about-us/页面点击EN链接,就会自动跳转到https://beta.yourtaxi.ch/en_Us/about-us/啦!
内容的提问来源于stack exchange,提问作者priyapatel
相关产品推荐
相关产品推荐

