日期:2014-05-16  浏览次数:20438 次

独立的页面语言设置方法
有个有语言设置需求的web,就是根据语言设置显示不同的内容。但是现在是要做到根据页面自身来维持不同的语言设置。
比如
1.打开窗口A,页面为index,语言为en,
2.打开窗口B,页面为index,语言为zh,
3.从窗口A的连接打开页面data,但维持语言设置为en,而不是zh

也就是各个页面的设置不互相影响,
Session估计是没用的了,现在就想能不能在页面unload的时候修改它提交给服务器的请求,然后加上当前页面的语言设置。
或者有其他方法?
web javascript 语言 设置

------解决方案--------------------
引用:
引用:加个参数就行了
index?lan=en
index?lan=zh

XML/HTML code?1234<script>var en=location.search.indexOf('lan=en')!=-1,zh=location.search.indexOf('lan=zh')!=-1;//其他操作</script>
怎……


判断你附加的参数是什么语言
if(en){
  //显示英文的
}else{
  //默认显示中文的
}
------解决方案--------------------
1,打开窗口A,页面为index,语言为en,

打开这个a的时候你怎么打开的?直接输入?直接输入的时候在后面加参数就行了index?lan=en,打开b也一样

通过点击页面的链接打开你就修改链接href增加语言参数


3.从窗口A的连接打开页面data,但维持语言设置为en,而不是zh
这个需要用js脚本设置下页面的链接,给页面data增加lan参数,data页面也需要获取lan参数后设置链接的语言选项

data.html,1.html,2.html内容全部如下
<script>
    var en = location.search.indexOf('lan=en') != -1, zh = location.search.indexOf('lan=zh') != -1;
    window.onload = function () {
        var as = document.getElementsByTagName('a');
        for (var i = 0; i < as.length; i++)
            if (as[i].href.indexOf('lan=') == -1)//链接包含过语言选项就不增加语言选项
                as[i].href = (as[i].href.indexOf('?') == -1 ? '?' : '&') + 'lan=' + (en ? 'en' : zh ? 'zh' : '');
        if (zh) document.getElementById('dvZH').style.display = 'none';
        else if (en) document.getElementById('dvEN').style.display = 'none';
    }
    document.write('<h1>' + location.pathname + '</h1>');
    if (en) document.write('language is english');
    else if (zh) document.write('语言为中文');
    else document.write('没有指定语言选择!!no language!');
</script>
<h1>下面这些链接保持和当前语言一直</h1>
<a href="1.html">1.html</a><br /><a href="2.html">2.html</a><br /><a href="data.html">data.html</a>
<div id="dvZH">
<h1>切换为中文</h1>
<a href="1.html?lan=zh">1.html</a><br /><a href="2.html?lan=zh">2.html</a><br /><a href="data.html?lan=zh">data.html</a></div>
<div id="dvEN">
<h1>切换为英文</h1>
<a href="1.html?lan=en">1.html</a><br /><a href="2.html?lan=en">2.html</a><br /><a href="data.html?lan=en">data.html</a></div>