法语和德语,两种语言,主页上用的是自动检测语言,代码如下,但不知为何是死循环,路径都是根目录.if (navigator.appName == 'Netscape') 
var language = navigator.language; 
else 
var language = navigator.browserLanguage; 
if (language.indexOf('de') > -1) document.location.href = 'german.htm';
else if (language.indexOf('fr') > -1) document.location.href = 'french.htm';
else document.location.href = 'german.htm'; 另外,在其它的页面上,每一页都有一个小标记为用户跳转语言用,如, FR, DE 如何能让这两个标记点上去后自动跳转到不同语言的相同内容的页面上,如按一下,FR,会从当前页
www.1234567.com/fr/abc.html跳到www.1234567.com/de/abc.html
再如
www.1234567.com/de/news.html跳到www.1234567.com/fr/news.html最好,能够写入JS文件,不在页面上看到代码.谢谢了.

解决方案 »

  1.   

    这个地方没必要判断德语
    if (language.indexOf('fr') > -1) document.location.href = 'french.htm';
    else document.location.href = 'german.htm'; js是前台运行的吧,你怕看到最好是加密url
    window.navigate("www.1234567.com/de/abc.html");
      

  2.   

    document.location.href= 'german.htm';
    改为
    window.location.href= 'german.htm';试试看,不敢肯定
      

  3.   

    如果是放在german.htm或french.htm中的话var language;
    if (navigator.appName == 'Netscape') language = navigator.language; 
    else language = navigator.browserLanguage;
    if (language.indexOf('fr') > -1) if(location.href.indexOf("french.htm")==-1) location.href = 'french.htm';
    else if(location.href.indexOf("german.htm")==-1) location.href = 'german.htm';
    跳转:function jp(){
      val v = location.href;
      if(v.indexOf("/de/")==-1) v = v.replace(/\/fr\//i,"/de/");
      else v = v.replace(/\/de\//i,"/fr/");
      location.href = v;
    }
    <a href="javascript:jp();void(0);">xx</a>
      

  4.   

    2L是对的window.location.href= 'german.htm'; <script type="text/javascript">
    function goTo(lang){
    var href = window.location.href;
    if (lang) {
    href = href.split('/');
    href[3] = lang;
    window.location.href = href.join('/');
    }
    }
    <script>
    <a href="#" onclick="goTo('fr');">Fr</a>
    <a href="#" onclick="goTo('de');">De</a>
      

  5.   

    这代码不知为什么有点问题,两个按键,FR和DE,只点一个就可以了,比如德语页面,点下,FR,跳入法文页面,可再点一次,又跳到了德语,而那个DE的键根本不用按了,当然只点DE也是同样的效果.我试着改,但是,改了几次都没成功.
    function jp(){
      val v = location.href;
      if(v.indexOf("/de/")==-1) v = v.replace(/\/fr\//i,"/de/");
      else v = v.replace(/\/de\//i,"/fr/");
      location.href = v;
    }
    <a href="javascript:jp();void(0);">xx</a>
      

  6.   

    document.location.href = 'french.htm';
    不知为何是死循环
    如果当前页为法语,
    那么document.location.href = 'french.htm';
    则是将当前页的地址重写为当前页的地址,--循环了!
    建议添加一个判断条件:
    if(lngSelect==lngBrowser){lngSet(lngSelect);}else{return;}
    function lngSet(lng){/*....*/}
      

  7.   

    问题解决了一半,现在的问题是,FR和DE每个点上去可以换两种语言,不是想像中的FR是法语,DE是德语的.我把链结给上来大家看看吧.
    http://www.momachina.ch/tennis/语言切换就在那两个小国旗的键上
      

  8.   

    <script type="text/javascript">
    function goTo(lang){
        var href = window.location.href;
        if (lang) {
            href = href.split('/');
            href[3] = lang;
            window.location.href = href.join('/');
        }
    }
    <script>
    <a href="#" onclick="goTo('fr');">Fr</a>
    <a href="#" onclick="goTo('de');">De</a>顶楼上!
      

  9.   

    <script type="text/javascript">/*
    http://www.momachina.ch/tennis/fr/index.html
    http://www.momachina.ch/tennis/de/index.html
    F:\csdn\mondi\de.html
    F:\csdn\mondi\fr.html
    */function lang(id)
    {
      var aLang=["de","fr"];//语言预设数组
      var rLang=new RegExp("/(de|fr)","i");//语言判别正则
      var url=window.location.href.toLowerCase();
      var uLang=url.match(rLang)[1];//地址栏语言
      var eLang=aLang[id].toLowerCase();//用户选择(事件)语言
      if(uLang!=eLang)
      { //如果地址栏语言与用户选择语言不同,则切换网址
    window.location.href=url.replace(rLang,"/"+eLang); 
      }
    }</script>
    <div id="langue">
    <a id="DE" href="javascript:lang(0);" title="Deutch">de</a>
    <a id="FR" href="javascript:lang(1);" title="Fran?ais">fr</a>
    </div>