让我们谈谈,
在此网站
mysite.com/en/index.html
或
mysite.com/en/model1/index.html
并点击<a href="swap current url to /FR/...">FR</a>
(或国家/地区标志img)
我该怎么做才能加载这个其他页面?
mysite.com/fr/index.html
或
mysite.com/fr/model1/index.html
我知道urlParser JQUery插件用于获取路径,它只是我是一个n00b而我根本无法编码(只需制作美颜html + css)。 :)
谢谢好朋友。
答案 0 :(得分:1)
假设每种语言的目录结构相同......
简单的事情:
<script>
//set a global var
var current = '/en/';
function changeLanguage(to){
var from = document.location.href;
var url = from.replace('/' + current + '/', to);
document.location = url;
}
</script>
<img src="frenchflag.jpg" onclick="changeLanguage('/fr/')" />
<img src="swissflag.jpg" onclick="changeLanguage('/sw/')" />
<img src="britishflag.jpg" onclick="changeLanguage('/en/')" />
然后在每个页面上粘贴并更改当前变量并删除该语言的图像。如果碰巧有很多页面,只需要做一点工作就可以自动化这部分。
答案 1 :(得分:0)
您可以在
等链接中使用绝对网址href="/fr/index.html"
或
href="/fr/model1/index.html"
或获取当前网址的语言组成部分并将其替换为新网址
var current_language = jQuery.url.segment(1);
var str = document.location;
var new_url = str.replace('/' + current_language + '/', "/fr/");
像这样的东西
答案 2 :(得分:0)
我不确定您的当前网址与目标网址之间是否存在关联,从您的文字判断,抱歉,但通常情况下,您将如何将点击侦听器应用于所有元素(使用class /指定) id)并让它打开一个特定的网址:
$(document).ready(function(){
$('a').click(function() {
window.location = "http://mysite.com/fr/index.html";
});
});
答案 3 :(得分:0)
您是否需要将路径中的/en/
替换为/fr/
?
如果是这样的话:
$(document).ready(function(){
$('a').click(function() {
document.location.href =document.location.href.replace('/en/' '/fr/');
});
});
答案 4 :(得分:0)
如果有多种语言,请为每个链接标记添加language="en"
或language="fr"
或任意内容,并输入以下代码:
$(document).ready(function(){
$('a').click(function() {
var language = $(this).attr('language')
document.location.href =document.location.href.replace('/en/' '/'+language+'/');
});
});
这样您就可以定义链接在HTML中指向的语言
答案 5 :(得分:0)
我改进了Dror 的响应(就像他的代码在' / fr / '和'之间缺少逗号一样的 / EN / 强>')。
现在它以“两种”方式工作,就像你似乎要求的那样:
$(document).ready(function(){
$('a').click(function() {
if (window.location.href.indexOf("fr") > -1) {
document.location.href =document.location.href.replace('/fr/','/en/');
} else {
document.location.href =document.location.href.replace('/en/','/fr/');
}
});
});