определить язык с помощью JavaScript и перенаправить на другую страницу - PullRequest
0 голосов
/ 25 ноября 2018

Мне нужно, чтобы, когда пользователь открывает мой сайт, он определяет язык и перенаправляет его на язык браузера.Я пытаюсь это, но это зацикливается, и страница постоянно загружается.Я надеюсь, что вы можете помочь.

window.onload = function() {

  var ln = window.navigator.language||navigator.browserLanguage;

  if(ln == 'en'){

    window.location.href = 'index_en.html';

  }else if(ln == 'es'){

    window.location.href = 'index_es.html'; 

  }else{

    window.location.href = 'index_es.html'; 

  }

}

1 Ответ

0 голосов
/ 25 ноября 2018

Установить куки перед перенаправлением.Затем при следующей перезагрузке файл cookie будет иметь значение, и вы можете остановить скрипт, используя команду «return»

window.onload = function() {

    var ln = window.navigator.language||navigator.browserLanguage;
    var myApp = {}

    /**
     * Gets cookie value by name
     * @param  {string} name Name of cookie to retrieve
     * @return {string}      Value of cookie if found
     */
    myApp.ReadCookie = function(name) {
        var nameEQ = name + "=";
        var ca = document.cookie.split(';');
        for(var i=0;i < ca.length;i++) {
            var c = ca[i];
            while (c.charAt(0)==' ') c = c.substring(1,c.length);
            if (c.indexOf(nameEQ) === 0) return c.substring(nameEQ.length,c.length);
        }
        return null;
    };

    /**
    * Removes cookie value
    * @param  {string} name Name of cookie
    */
    myApp.EraseCookie = function(name) {
        if ( myApp.ReadCookie(name) )
        document.cookie = name+'=';
        console.log(name+' erased.');
    };

    /**
    * Deletes cookie reference
    * @param  {string} name Name of cookie
    */
    myApp.DeleteCookie = function(name) {
        document.cookie = name + '=; expires=Thu, 01 Jan 1970 00:00:01 GMT;';
        console.log(name+' deleted.');
    };

    /**
    * Set cookie value
    * @param  {string} name Name of cookie
    */
    myApp.SetCookie = function(name, value, expires) {

        var cookiestring = [[name, '=', encodeURIComponent( value )].join('')];
        var expire_time = '';

        if ( expires ) {
            expire_time = new Date();
            expire_time.setTime( expire_time.getTime() + expires );
            expire_time = expire_time.toGMTString();
            cookiestring.push( ['expires=', expire_time ].join('') );
        }
        cookiestring = cookiestring.join(';')+';';
        document.cookie = cookiestring;
        console.log( 'SetCookie: '+ name +' set to "'+ value +'"', 'Expires?', expire_time );
    };

    if(myApp.ReadCookie('lang_redirect')) {
        return;
    }

    myApp.SetCookie('lang_redirect', ln);

    if(ln == 'en'){
        window.location.href = 'index_en.html';
    }else if(ln == 'es'){
        window.location.href = 'index_es.html'; 
    } else{
        window.location.href = 'index_es.html'; 
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...