一个简单的欢迎cookie

1,创建cookie

利用用户在提示框中输入的数据创建一个 JavaScript Cookie,当该用户再次访问该页面时,根据 cookie 中的信息发出欢迎信息。

<html>
<head>
<script type="text/javascript">
//读取cookie标签对应值
//c_name:cookie标签
function getCookie(c_name)
{
if (document.cookie.length>0)//cookie不为空
{ 
c_start=document.cookie.indexOf(c_name + "=")//获取c_name标签的起始位置
if (c_start!=-1)//存在c_name标签
{ 
c_start=c_start + c_name.length+1//获取c_name值的起始位置 
c_end=document.cookie.indexOf(";",c_start)//获取c_name值的结束为止
if (c_end==-1) //c_start后不存在“;”
    c_end=document.cookie.length//获取cookie结束位置
return unescape(document.cookie.substring(c_start,c_end))//返回c_name值
} 
}
return ""
}

//写入cookie标签对应值
//c_name:cookie标签;value:标签对应值;expiredays:有效期
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())//有效期有意义,则将编码后的value赋值给c_name并添加有效期标签
}

//读取cookie
function checkCookie()
{
username=getCookie('username')//读取username标签值
if (username!=null && username!="")//username标签值有意义
  {alert('Welcome again '+username+'!')//提示框}
else //username标签值无意义
  {
  username=prompt('Please enter your name:',"")//输入框
  if (username!=null && username!="")//输入框值有意义
    {
    setCookie('username',username,365)//写入username标签值
    }
  }
}
</script>
</head>
<body onLoad="checkCookie()">
</body>
</html>

2,indexOf(String.indexOf 方法)

字符串的IndexOf()方法搜索在该字符串上是否出现了作为参数传递的字符串,如果找到字符串,则返回字符的起始位置 (0表示第一个字符,1表示第二个字符依此类推)如果说没有找到则返回 -1

返回 String 对象内第一次出现子字符串的字符位置。

public indexOf(value:String, [startIndex:Number]) : Number

搜索字符串,并返回在调用字符串内 startIndex 位置上或之后找到的 value 的第一个匹配项的位置。此索引从零开始,这意味着字符串中的第一个字符被视为位于索引 0 而不是索引 1 处。如果未找到value,该方法会返回 -1。

参数

value:String - 一个字符串;要搜索的子字符串。

startIndex:Number [可选] - 一个整数,指定搜索的开始索引。

返回

Number - 指定子字符串的第一个匹配项的位置,或 -1。
--------------------------------------------------------------------------------------------------------------------------------------------------
indexOf 方法 
返回 String 对象内第一次出现子字符串的字符位置。 

strObj.indexOf(subString[, startIndex]) 

参数 
strObj 

必选项。String 对象或文字。 

subString 

必选项。要在 String 对象中查找的子字符串。 

starIndex 

可选项。该整数值指出在 String 对象内开始查找的索引。如果省略,则从字符串的开始处查找。 

说明 
indexOf 方法返回一个整数值,指出 String 对象内子字符串的开始位置。如果没有找到子字符串,则返回 -1。 

如果 startindex 是负数,则 startindex 被当作零。如果它比最大的字符位置索引还大,则它被当作最大的可能索引。 

从左向右执行查找。否则,该方法与 lastIndexOf 相同。 

 

3,escape() 函数

escape() 函数可对字符串进行编码,这样就可以在所有的计算机上读取该字符串。

返回值:已编码的 string 的副本。其中某些字符被替换成了十六进制的转义序列。该方法不会对 ASCII 字母和数字进行编码,也不会对下面这些 ASCII 标点符号进行编码: * @ - _ + . / 。其他所有的字符都会被转义序列替换。

提示:可以使用 unescape() 对 escape() 编码的字符串进行解码。

注释:ECMAScript v3 反对使用该方法,应用使用 decodeURI() 和 decodeURIComponent() 替代它。

  

  

posted @ 2012-11-01 11:09  shuaizizhi  阅读(326)  评论(0编辑  收藏  举报