【发布时间】:2013-07-02 08:18:36
【问题描述】:
我使用以下脚本在第一次访问时将页面的访问者重定向到另一个页面,但是它首先加载 index.html 页面,然后触发重定向。谁能指出我在页面加载之前如何触发此脚本的方向?
<script type="text/javascript">
function redirect(){
var thecookie = readCookie('doRedirect');
if(!thecookie){window.location = '/coming-soon.html';
}}
function createCookie(name,value,days){if (days){
var date = new Date();date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else var expires = "";document.cookie = name+"="+value+expires+"; path=/";
}
function readCookie(name){
var nameEQ = name + "=";var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++){
var c = ca[i];while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);}
return null;
}
window.onload = function(){redirect();createCookie('doRedirect','true','1');}
</script>
(这里使用的JS sn-p取自Stack Overflow: JS to redirect to a splash page on first visit)
谢谢。
【问题讨论】:
-
不要在
window.onload回调中这样做。只需将此代码放在 head 标签中,浏览器就会运行它,直到它解析它为止。此外,您最好在重定向之前创建 cookie 以确保它执行。 -
澄清一下,你的意思是把最后一行改成这个?
function(){redirect();createCookie('doRedirect','true','1');} -
抱歉,没有回答您的最后一个问题。 “这”是什么?
-
已编辑!点击进入太快了。
-
我发布了我的答案。
标签: javascript redirect cookies onload