我有一个小的加载动画,当用户来自我的域外时,我希望在我的主页上运行,但是当来自我的域内的另一个页面时,我不希望它显示。
我尝试使用document.domain
和document.referrer.split...
来获取以前的域名,并运行if-command但似乎无法使其正常运行。
编辑:
我尝试使用if
- 命令和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 :(得分: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
将返回您来自推荐人的域名。
答案 1 :(得分: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);
});
}
});
这将仅按会话加载。
答案 2 :(得分:0)
document.refferer.split()
是解决问题的正确解决方案。
根据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
}
我在不同的项目中使用了这个解决方案,但它确实有效。