使用Javascript的基于Cookie的重定向
我正在尝试根据cookie的存在创建重定向。因此,当用户第一次连接到我的网站使用Javascript的基于Cookie的重定向,javascript,jquery,html,cookies,Javascript,Jquery,Html,Cookies,我正在尝试根据cookie的存在创建重定向。因此,当用户第一次连接到我的网站jonathanstevens.org时,他们会被重定向到jonathanstevens.org/landing 代码部分: <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN
jonathanstevens.org
时,他们会被重定向到jonathanstevens.org/landing
代码部分:
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
Global.js
函数创建\u cookie(名称、值、天数){
var=”;
如果(天){
变量日期=新日期();
date.setTime(date.getTime()+(天*24*60*60*1000));
expires=“;expires=“+date.togmString();
}
document.cookie=name+“=”+value+expires+“path=/”;
}
函数get_cookie(名称){
变量nameEQ=name+“=”;
var ca=document.cookie.split(“;”);
对于(变量i=0;i
当您从函数get\u cookie
返回null
时,您应该与null
进行比较,而不是undefined
Index.html
<!-- redirect to landing page -->
<script>
// Redirect to landing page if 'form_submitted' cookie does not exist
if (get_cookie('secondvisit') === null) {
window.location.href = "landing.html";
}
</script>
创建一个7天后过期的cookie,在整个站点上有效:
Cookies.set('name', 'value');
Cookies.set('name', 'value', { expires: 7 });
Cookies.set('name', 'value', { expires: 7, path: '' });
Cookies.get('name'); // => 'value'
Cookies.get('nothing'); // => undefined
Cookies.get(); // => { name: 'value' }
Cookies.remove('name');
Cookies.set('name', 'value', { path: '' });
Cookies.remove('name'); // fail!
Cookies.remove('name', { path: '' }); // removed!
创建对当前页面路径有效的过期cookie:
Cookies.set('name', 'value');
Cookies.set('name', 'value', { expires: 7 });
Cookies.set('name', 'value', { expires: 7, path: '' });
Cookies.get('name'); // => 'value'
Cookies.get('nothing'); // => undefined
Cookies.get(); // => { name: 'value' }
Cookies.remove('name');
Cookies.set('name', 'value', { path: '' });
Cookies.remove('name'); // fail!
Cookies.remove('name', { path: '' }); // removed!
读取cookie:
Cookies.set('name', 'value');
Cookies.set('name', 'value', { expires: 7 });
Cookies.set('name', 'value', { expires: 7, path: '' });
Cookies.get('name'); // => 'value'
Cookies.get('nothing'); // => undefined
Cookies.get(); // => { name: 'value' }
Cookies.remove('name');
Cookies.set('name', 'value', { path: '' });
Cookies.remove('name'); // fail!
Cookies.remove('name', { path: '' }); // removed!
读取所有可见cookie:
Cookies.set('name', 'value');
Cookies.set('name', 'value', { expires: 7 });
Cookies.set('name', 'value', { expires: 7, path: '' });
Cookies.get('name'); // => 'value'
Cookies.get('nothing'); // => undefined
Cookies.get(); // => { name: 'value' }
Cookies.remove('name');
Cookies.set('name', 'value', { path: '' });
Cookies.remove('name'); // fail!
Cookies.remove('name', { path: '' }); // removed!
删除cookie:
Cookies.set('name', 'value');
Cookies.set('name', 'value', { expires: 7 });
Cookies.set('name', 'value', { expires: 7, path: '' });
Cookies.get('name'); // => 'value'
Cookies.get('nothing'); // => undefined
Cookies.get(); // => { name: 'value' }
Cookies.remove('name');
Cookies.set('name', 'value', { path: '' });
Cookies.remove('name'); // fail!
Cookies.remove('name', { path: '' }); // removed!
删除对当前页面路径有效的cookie:
Cookies.set('name', 'value');
Cookies.set('name', 'value', { expires: 7 });
Cookies.set('name', 'value', { expires: 7, path: '' });
Cookies.get('name'); // => 'value'
Cookies.get('nothing'); // => undefined
Cookies.get(); // => { name: 'value' }
Cookies.remove('name');
Cookies.set('name', 'value', { path: '' });
Cookies.remove('name'); // fail!
Cookies.remove('name', { path: '' }); // removed!
编辑 使用
js.cookie
库转换的代码版本如下所示
(注意:我已经测试了这段代码,它工作正常,请确保您正确地包含了库,并且控制台上没有错误。)
Index.html
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/js-cookie@2/src/js.cookie.min.js"></script>
<!-- redirect to landing page -->
<script>
$(document).ready(function () {
if (typeof Cookies.get('secondvisit') === 'undefined') {
window.location.href = "landing.html";
}
})
// Redirect to landing page if 'form_submitted' cookie does not exist
</script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/js-cookie@2/src/js.cookie.min.js"></script>
<!-- Adds second Visit cookie -->
<script>
jQuery(document).ready(function () {
// Create cookie so that the user is no longer redirected
var a = Cookies.set('secondvisit', 'true', {
expires: 7
});
});
</script>
$(文档).ready(函数(){
if(Cookies.get的类型('secondvisit')=='undefined'){
window.location.href=“landing.html”;
}
})
//如果“form_submitted”cookie不存在,则重定向到登录页
landing.html
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/js-cookie@2/src/js.cookie.min.js"></script>
<!-- redirect to landing page -->
<script>
$(document).ready(function () {
if (typeof Cookies.get('secondvisit') === 'undefined') {
window.location.href = "landing.html";
}
})
// Redirect to landing page if 'form_submitted' cookie does not exist
</script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/js-cookie@2/src/js.cookie.min.js"></script>
<!-- Adds second Visit cookie -->
<script>
jQuery(document).ready(function () {
// Create cookie so that the user is no longer redirected
var a = Cookies.set('secondvisit', 'true', {
expires: 7
});
});
</script>
jQuery(文档).ready(函数(){
//创建cookie,以便不再重定向用户
var a=Cookies.set('secondvisit','true'{
有效期:7
});
});
谢谢。这使重定向工作正常。但是,当页面“登录”加载时,它不会创建cookie。因此,当我点击index.html时,它会再次重定向我。(我在chrome本地工作)<代码>jQuery(document).ready(函数($){cookies.set('secondvisit','true');})我还包括了你建议的库。我现在不在家,我会回家看看我能做些什么来整理它。除了所有的Cookies.set()
不是Cookies.set()
所以这可能是它不适合你的原因,我添加了上面的代码@Jonathanstevens在我的本地文件系统上执行此操作,或者我必须上传它。如果是这样的话,也许这就是问题所在……非常好的信息,我一直在寻找,谢谢。