2016-11-02 6 views
0

У меня есть пример страницы, скажем testpage.pl Когда я выберу английскую версию, параметр GET добавляется к URL-адресу, например /?language=en.Бесконечный цикл при перенаправлении в Javascript

Впоследствии, когда я нажимаю пункты меню, они находятся в английской версии, поэтому все в порядке.

Но если я хочу, чтобы иметь английскую версию подстраницы directlty после вставки URL в браузере, как

http://testpage.pl/wyjazdy-i-przyjazdy/erasmus-incoming-staff/accommodation.html)

открыта польская версия. Поэтому я сделал простую функцию переадресации, как показано ниже, но она приходит в цикл после первого запуска. Эта функция перенаправляется на ту же страницу, но перед ее попыткой перенаправить на этот первый URL-адрес с параметром GET ?language=en

Как это решить?

function cleanUrl() { 
    window.location = "http://testpage.pl/?language=en"; 
    var cleanedUrl = "http://testpage.pl/wyjazdy-i-przyjazdy/erasmus-incoming-staff/accommodation.html"; 
    var currentUrl = window.location.href; 
    if (currentUrl !== cleanedUrl) { 
    window.location = cleanedUrl; 
    } 

} 
cleanUrl(); 
+7

'window.location' будет ссылаться на перенаправление и все после того, как оно не будет выполнено – Rajesh

ответ

0

Ваш обновляют URL в первой строке функции, которая вызывает ваш код петли бесконечной. Удалить эту строку или перейти на какую-либо другую функцию для исправления

function cleanUrl() { 
var cleanedUrl = "http://testpage.pl/wyjazdy-i-przyjazdy/erasmus-incoming-staff/accommodation.html"; 
var currentUrl = "http://testpage.pl/?language=en"; 
if (currentUrl !== cleanedUrl) { 
window.location = cleanedUrl; 
} 
} 
cleanUrl(); 
0

Держите window.location назначение в качестве последней операции.

function cleanUrl() { 
    var enUrl = "http://testpage.pl/?language=en"; 
    var cleanedUrl = "http://testpage.pl/wyjazdy-i-przyjazdy/erasmus-incoming-staff/accommodation.html"; 
    var currentUrl = window.location.href; 
    if(currentUrl !== cleanedUrl) { enUrl = cleanedUrl; } 
    window.location = enUrl; 
} 
Смежные вопросы