2016-11-13 2 views
1

У меня есть небольшая анимация загрузки, которую я хочу запустить на моей домашней странице, когда пользователь приходит из-за пределов моего домена, но при переходе с другой страницы внутри моего домена я не хочу, чтобы он показывался.Обнаружение пользователей предыдущий домен

Я попытался использовать document.domain и document.referrer.split..., чтобы получить предыдущий домен и запустить команду if, но не может заставить его работать.

Edit:

Я попытался с помощью if -command и document.referrer.split... -команды, опять же, как указано отвечающий но анимация все еще всегда показывает, и теперь он никогда не останавливается, а ...

<head> 
<body> 
<div class="loader"></div> 

<style>.loader { 
    position: fixed; 
    left: 0px; 
    top: 0px; 
    width: 100%; 
    height: 100%; 
    z-index: 9999; 
    background: url('http://bosonprotein.com/onewebmedia/Magiska%20Bollar.gif') 50% 50% no-repeat rgb(0,0,0); 
    background-size: 10%; 
} 

</style> 
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
<script type="text/javascript"> 
if(document.referrer.split('/')[2]!=location.hostname){ 
    $(window).load(function() { 
    setTimeout(function(){ 
      $('.loader').fadeOut('slow', function() { 
      }); 
     },1000); 
    }) 
} 
else{ 
} 

</script> 
</body> 
</head> 
+0

Если эта анимация всегда загружается, например, когда пользователь посещает вашу домашнюю страницу во второй раз? – LGSon

+0

Да, очень короткий, поэтому я хочу, чтобы он скрывался, когда пользователь возвращается на домашнюю страницу с сайта. – kung439

+0

Затем используйте cookie сеанса как _norcal johnny_, так как домен реферера может быть не всегда. – LGSon

ответ

0

Вместо обнаружения домена вы можете использовать cookie и jQuery, возможно, что-то вроде этого.

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<div class="welcome"> 
    <div> 
    <h1>Hello..!<br> Welcome to ABC 
    <br> 
    </h1> 
    <h2>We wish you a Great Day..!</h2> 
    <br> 

    <h2><a id="close-welcome" href="#">Thank you.. and please take me to the  website</a> </h2> 
    </div> 
</div> 

$(document).ready(function() { 
    if ($.cookie('noShowWelcome')) $('.welcome').hide(); 
    else { 
     $("#close-welcome").click(function() { 
      $(".welcome").fadeOut(1000); 
      $.cookie('noShowWelcome', true);  
     }); 
    } 
}); 

Это загрузит его за сеанс.

1

Вы можете разобрать реферера, используя эту технику:

var parser = document.createElement('a'); 
parser.href = document.referrer; 

parser.protocol; // => "http:" 
parser.hostname; // => "example.com" 
parser.port;  // => "3000" 
parser.pathname; // => "/pathname/" 
parser.search; // => "?search=test" 
parser.hash;  // => "#hash" 
parser.host; 

parser.host возвращает домен, который вы от реферера.

0

- это правильное решение для решения вашей проблемы.

В соответствии с documentation, document.refferer возвращает URI предыдущей страницы.

Сравните расщепляется URI с location.host, как следующий фрагмент кода:

if(document.referrer.split('/')[2]!=location.hostname){ 
    //I came from another domain 
}else{ 
    //I came from this domain 
} 

Я использовал это решение в различных проектах, и она работает.

+0

Я пробовал это, поставив сценарий анимации вместо «// я пришел из другого ...», теперь анимация все еще всегда появляется и никогда не останавливается ... – kung439

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