2015-01-07 3 views
0

У меня есть простой JS для перенаправления пользователя от страницы на основе нескольких условий.Не уверен, что document.referrer работает

var lastPage = document.referrer; 
    var currentPage = window.location.href; 
    var myElem = document.getElementById('topframe.login.label'); 

     if (currentPage == "https://de.com.edu/webapps/portal/execute/tabs/tabAction?tab_tab_group_id=_1_1")       
     { 
      if (myElem != null && lastPage != "http://www.com.edu/") 
      { 
       window.location.replace("https://de.com.edu/webapps/login/?action=relogin"); 
      } 
     } 

В принципе, если пользователь попадает на первую ссылку, проверил в currentPage я хочу увидеть, если они пришли с адреса http://www.com.edu и если не перенаправлять их с помощью window.location.replace.

Проблема в том, что этот код работает независимо от того, что (например, пользователь всегда перенаправляется). Я понятия не имею, какое значение получает lastPage, и я не вижу никаких ошибок в консоли разработчика в Chrome. Есть что-то немое, что я делаю неправильно? Я подтвердил, что http://www.com.edu - это точный URL-адрес, который я ищу, и попробовал его как с обратной косой чертой в конце, так и без нее.

+1

_ «Я не знаю, какое значение lastPage получает» _ - ну тогда отключите перенаправление и запишите это значение в консоль - D'oh! – CBroe

+0

изменить '&& lastPage! =" Http://www.com.edu/ "' to '&& lastPage && lastPage! =" Http://www.com.edu/ "'; иногда реферер не существует по целому ряду причин. – dandavis

+1

Плохая идея полагаться на 'document.referrer' на что-то. – Pointy

ответ

-2

Вот ваши solution.Just должны изменить null Полный код:

var lastPage = document.referrer; 
var currentPage = window.location.href; 
var myElem = document.getElementById('topframe.login.label'); 

    if (currentPage == "https://de.com.edu/webapps/portal/execute/tabs/tabAction?tab_tab_group_id=_1_1")       
    { 
     if (myElem != '' && lastPage != "http://www.com.edu/") 
     { 
      window.location.replace("https://de.com.edu/webapps/login/?action=relogin"); 
     } 
    } 

Посмотреть мою JSFIDDLE.

Смежные вопросы