Javascript Cookie onload Call

时间:2009-03-22 01:18:58

标签: javascript cookies function-calls

我有一个使用javascript做的cookie,并检查是否必须更换我在HTML的body标签中使用了“onload = checkCookie()”,但现在我正在尝试将js放在另一个文件,并使用标签链接它,但如果我这样做,我不能再使用“onload”调用此函数,所以我想知道我该怎么做?我问过的其他人告诉我把代码保留在那里,但是我想在图层中分离我的设计= S

这是js:

function getCookie(c_name){
    if (document.cookie.length>0){
        c_start=document.cookie.indexOf(c_name + "=");
        if (c_start!=-1){ 
            c_start=c_start + c_name.length+1; 
            c_end=document.cookie.indexOf(";",c_start);
            if (c_end==-1) c_end=document.cookie.length;
            return unescape(document.cookie.substring(c_start,c_end));
        } 
    }
    return "";
}

function setCookie(c_name,value,expiredays){
    var exdate=new Date();
    exdate.setDate(exdate.getDate()+expiredays);
    document.cookie=c_name+ "=" +escape(value)+
    ((expiredays==null) ? "" : ";expires="+exdate.toGMTString());
}

function checkCookie(){
    username=getCookie('username');
    if(username!=null && username!=""){
        alert('Welcome again '+username+'!');
    }else{
        username=prompt('Please enter your name:',"");
        if(username!=null && username!=""){
            setCookie('username',username,365);
        }
    }
}

所有内容都在名为init.js

的文件中

2 个答案:

答案 0 :(得分:2)

我不明白这个问题,你应该能够使用正文的onload来执行javascript,即使它来自外部文件,如下所示:

这是html:

<html>
<head>
<script type="text/javascript" src="script.js"></script>
</head>
<body onload="hello()">
</body>
</html>

这是链接的javascript:

var hello = function()
{
    alert("Hello!");
}

答案 1 :(得分:1)

将脚本放在单独的文件中是一件好事。 将onload函数添加到脚本 -

<强>窗口 .onload = checkCookie; //(没有括号)并将其从html中删除。