嗨,不知道是否有人可以指出我正确的方向。
我正在使用一些代码,我可以将其放在一个链接上,该链接将转到当前页面的URL,但是在一个单独的文件夹中,或者在网址中添加一个语言标识符。
例如,如果有人在FAQ.aspx上,他们会点击菜单中的意大利语链接,它会将它们发送给它-FAQ.aspx或/it/FAQ.aspx,其他页面也是如此。
这有意义吗?并且它是否可能,并且有人可以指向我的方向
提前致谢!
答案 0 :(得分:0)
尝试这样的事情:
获取当前网址的第一个路径名,然后将语言代码放在前面并使用jquery更改链接的href:
<html>
<a class="switch_language" data-country-code="it" href="">Italian</a>
<a class="switch_language" data-country-code="de" href="">German</a>
和...
<script>
$('.switch_language').each(function() {
$(this).attr('href', $(this).attr('data-country-code') + '/' + location.pathname);
});
您的语言链接网址将如下所示
/it/faq.aspx
/de/faq.aspx
答案 1 :(得分:0)
使用data
属性,您可以在链接上存储“要添加到URL的部分”。您可以使用.data()
方法阅读它。
然后......如果您按/
分割实际网址,则可以重新组合并插入要添加的部分。
此脚本适用于任何页面。
$(".menu .lang").on("click",function(){
// Get the actual page URL
var thisPage = location.href;
console.log(thisPage);
// Split the URL by the "/"
var splitted = thisPage.split("/");
var splittedLength = splitted.length;
// Get the data-lang value
var insert = $(this).data("lang");
// Re-assemble the URL except the last part
var destination="";
for (i=0;i<splittedLength-1;i++){
destination += splitted[i]+"/";
}
// Add the part to "insert" and last part of the URL
destination += insert+"/"+splitted[splittedLength-1];
// OR
// destination += insert+"-"+splitted[splittedLength-1]; // See explanation below the snippet.
// Go to that page!
console.log(destination);
//location.assign(destination); // Commented for this demo...
});
.menu a{
display:block;
text-decoration:underline;
cursor:pointer;
color:blue;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<h1>FAQ</h1>
<div class="menu">
<a class="lang" data-lang="it">Italiano</a>
<a class="lang" data-lang="en">english</a>
<a class="lang" data-lang-"fr">Français</a>
</div>
这里,语言参数添加在/
之间,就像它是一个目录......但你可以轻松地将它添加到页面名称中,就像它-FAQ.aspx一样。