2014-12-02 7 views
-2

У меня есть этот код, чтобы создать кнопку вернуться в навигации:Получить URL, прежде чем вернуться

$('a#button-back').click(function(e){ 
    parent.history.back(); 
    return false; 
}); 

Он отлично работает.

Но мне нужно добавить условие if/else, чтобы проверить, существует ли строка в URL-адресе, куда будет направлен пользователь. Если строка существует, перейдите на предыдущую страницу, если нет, то она возвращается на две страницы в истории.

Что-то вроде

$('a#button-back').click(function(e){ 
    if('my-string' is in 'parent.history.back()'){ 
     parent.history.back(); 
    }else{ 
     parent.parent.history.back(); 
    } 
     return false; 
}); 
+0

'if (document.referrer == xxx) {} else {}'? – putvande

+0

почему голосование вниз? Это вопрос сценария, не так ли? Можете ли вы объяснить PLS? – chefnelone

+1

@chefnelone Похоже, что кто-то просто перешел через эту тему и все без исключения остановил все. –

ответ

1

Вы можете проверить document.referrer (где использование пришли):

if (document.referrer.indexOf('my-string') !== -1) { 
    // go back in history 1 step 
} else { 
    // go back in history 2 steps. 
} 

Если вы хотите вернуться 2 шаги в истории, вы можете сделать:

history.go(-2); 

См https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Manipulating_the_browser_history для руководства.

+0

document.referrer полезен для проверки того, откуда пришел пользователь. Но мне нужно проверить, куда идет пользователь. Я меняю свой пример строки функций 'if (' my-string 'находится в' parent.history.back() ') {' – chefnelone

+0

Если вы делаете 'history.back()', вы получите тот же url, что и 'document .referrer'. – putvande

+0

... Могу ли я печатать на консоли значение «parent.history.back()» каким-либо образом перед переходом на страницу? – chefnelone

-1

Вы можете использовать window.location получить либо href или host:

if (window.location.href.indexOf('myString')) { 
     ..... 
} 
Смежные вопросы